[Fontconfig] commit: drastic fontconfig speedups

Patrick Lam 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:
>>>
>>>cvs20051119: 143
>>>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 
done.

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.)

pat


More information about the Fontconfig mailing list