[Fontconfig] mmap-ed caches + patch
l.lunak at suse.cz
Wed Sep 28 01:17:40 EST 2005
first of all I'd like to thank for the recent work on improving fontconfig's
performance. It's good to see this problem will be finally solved.
However, when I tested the 2.3.90 release yesterday, I was originally
disappointed to see it performed noticeably worse than the last stable
version. Short version: Please apply the attached patch. Longer version: The
problem turned out to be directories that contain files that fontconfig
doesn't seem to use yet it analyses them (.pcf.gz files). If a directory
contains only .pcf.gz files and has no subdirectories, then the code that the
patch removes will not write a cache file, yet the return FcTrue means the
directory has been successfully cached. However if you look in
FcCacheReadDirs() you can see that if it can't use the cache file it will
call FcDirScanConfig(). So I suggest the attached patch which will write a
more or less empty cache file even in such directories.
With this patch both the memory and startup time problems of fontconfig seem
to be gone. Great :).
And, actually, it seems I've just found another problem :(. If I run
Konqueror, run 'fc-cache -f' and go back to Konqueror, it crashes quite soon.
Guessing from strace of fc-cache, where I cannot see any call to unlink(),
and from the calls to ftruncate() I assume that the new cache file contents
are written directly in the same file instead of unlinking the old file
first, and fontconfig doesn't survive that. As I don't understand the code
that much I cannot confirm this theory for sure, which also means no patch
for this, sorry :).
l.lunak at suse.cz l.lunak at kde.org
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 386 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/fontconfig/attachments/20050927/fe1e9042/fccache.c.bin
More information about the Fontconfig