[Fontconfig] 2.3.91 performance regression from 2.3.2

Patrick Lam plam at MIT.EDU
Thu Oct 6 02:23:43 EST 2005

Ronny V. Vindenes wrote:
> While testing 2.3.91 I noticed a huge performance regression compared to
> 2.3.2 (Fedora rawhide).
> If I keep my fonts[1] in several subdirectories[2], rendering pages in
> epiphany[3] takes a very long time (2-3 seconds with 100% cpu load) even
> for short pages using a single font (clicking through to other pages
> using the same font takes as long as well), but if I put all the fonts
> in a single directory things are rendered at the expected speed.

In the current configuration, every directory has an in-memory bank and
an associated bank id (randomly generated).  fontconfig currently uses
linear search to locate bank ids in a table, and I bet that's what's
causing your problem.  I implemented a naive bank lookup algorithm first
and was waiting to see if anyone would complain about it being slow.
Obviously it is, so I'll commit a patch which makes the list a
move-to-front list, which ought to be a sufficiently sophisticated data
structure for this purpose.  This ought to solve your performance
problems.  I'll let you know when I've implemented it.


More information about the Fontconfig mailing list