[Fontconfig] commit: drastic fontconfig speedups
plam at MIT.EDU
Mon Nov 28 22:13:12 PST 2005
Matthias Clasen wrote:
> On Tue, 2005-11-29 at 00:19 -0500, Patrick Lam wrote:
>>Matthias Clasen wrote:
>>>The globs change clearly has a big effect. The results of
>>>fc-list | wc -l on my system are as follows:
>>>before globs change: 148
>>>current cvs: 0
>>Hmm, there shouldn't be a difference between before globs change and
>>cvs20051119. However, 0 is a number I'm not reproducing. Can you check
>>your config and try rebuilding your caches?
> I just rebuilt my caches with fc-cache from current cvs, and fc-cat
> lists the contents of the cache files as expected. Still, fc-list comes
> up empty.
For no good reason I had at one point 0 fonts as well. However, I've
updated current CVS with a couple of changes, using a more stable API to
get the font filenames. Unfortunately, this is going to hurt the perf
of FcInit. Anyway, I think that the code is now actually correct, and
seems to work fine for me at least. Rebuilding caches doesn't seem to
help, but recompiling everything might help.
Globs now check both the full filename and the pathname to see whether
or not they belong to a rejection glob. This can actually be greatly
sped up, come to think of it. The per-directory rejection glob only
needs to be done once per cache directory. Unfortunately, the full
filename still has to be checked; I don't really see a clean way around
that. I'll do the per-directory optimization momentarily; consider it
Please tell me about how fc-list behaves for you after this change. (I
also compiled with -O0 -g, but that *shouldn't* make a difference.
Perhaps the make clean did.)
More information about the Fontconfig