freetype
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ft] Minimizing small file reads


From: suzuki toshiya
Subject: Re: [ft] Minimizing small file reads
Date: Tue, 18 Nov 2008 19:10:52 +0900
User-agent: Mozilla-Thunderbird 2.0.0.12 (X11/20080406)

Hi,

As Mickey Gabel has proposed, it is possible to load a font face from
a memory image that is copied from a font file.

Please check FT_Open_Face() API
http://www.freetype.org/freetype2/docs/reference/ft2-base_interface.html#FT_Open_Face
and its argument
http://www.freetype.org/freetype2/docs/reference/ft2-base_interface.html#FT_Open_Args
It is possible to make a FT_Face object from a memory image.

If you want a concrete example, please check an implementation of
a private internal function open_face_from_buffer() in src/base/ftobjs.c.

Regards,
mpsuzuki


☂Josh Chia (谢任中) wrote:
Hi

If you're talking about mmap(), yes my system has mmap, but I'll have to
check whether I have it enabled in my freetype build.  I notice that
freetype is reading little pieces of data, like a long here and there.  I
also see larger chunks of 4k being read, but ideally, I would like to have
everything in memory so that I don't need any calls to read() after some
initial read(s).  Perhaps, there's a way to prefetch entire font files?

If mmap() can be used to avoid small reads, I should probably investigate
how to make use of it.

Josh

On Mon, Nov 17, 2008 at 9:34 PM, suzuki toshiya
<address@hidden>wrote:

Hi,

In the system supporting memmap() and FreeType2 is configured
to use it, the number of system call would be much reduced in
comparison with the system without memmap. In the target platform
which you're working for, memmap() is available? Or, available
and configured to use it, but you think still too many read
system call is executed?

Regards,
mpsuzuki

☂Josh Chia (谢任中) wrote (2008/11/18 10:39):

Hi,

I notice that freetype makes a lot of small reads, resulting in a lot of
SYS_read calls.  I'm using freetype in an app that runs in a ptrace
sandbox,
so performance is sensitive to system calls.  Is there a simple way to
prevent the numerous small reads (via ft_ansi_stream_io), such as
configuring freetype to prefetch into a large buffer when reading, and
making it assume that font files never change?  Will I need to make some
configuration changes or do I need to make code changes?  Thanks!

Josh



------------------------------------------------------------------------

_______________________________________________
Freetype mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/freetype






reply via email to

[Prev in Thread] Current Thread [Next in Thread]