[Fontconfig] Slow startup of trivial GNOME 2.6 applications

Phil Race Phil.Race at Sun.COM
Thu Oct 21 01:12:47 EST 2004


Alan Coopersmith wrote:
> Stefaan A Eeckels wrote:
> 
>> Hi List,
>>
>> I've just subscribed, please direct me to the answer
>> if what I'm about to ask is the FAQ of the century :-).
>>
>> Comparing Sun's Gnome 2.0 and the Blastwave build of
>> Gnome 2.6 (on Solaris/SPARC), I've noticed that the
>> 2.6 applications have an incredibly long start-up time
>> (even on a Blade 2000 2x900cu, which while not the
>> fastest machine on earth, is certainly no slouch). A bit of trussing 
>> reveals that even the most trivial
>> of programs performs a full scan of all the available
>> font files on the system. 
> 
> 
> Run fc-cache as root first to build the font caches so the
> applications don't have to do this.   The fontconfig provided
> by Sun in Solaris will do this for you, but I don't know if
> blastwave's will.
> 
> 

Alan is right. This makes a huge difference, although its still
an issue to a degree because Solaris has way more fonts than
any Linux distro I've ever seen.
/etc/fonts/fonts.conf on a RH 9 install just has
	<dir>/usr/share/fonts</dir>
	<dir>/usr/X11R6/lib/X11/fonts/Type1</dir>
	<dir>/usr/X11R6/lib/X11/fonts/OTF</dir>
	<dir>~/.fonts</dir>

whereas on Solaris 10 with gnome 2.6 the same file lists 48 directories!
And many of those have a significant number of fonts and
quite large fonts.dir files. Imagine trawling through that ever time
you start an app. If you build the cache it doesn't need to do so
remotely so much work, but it still trawls the directories to check the
cache files although I'm not 100% sure of the precise difference.
And I doubt you have exactly this in the blastwave build but you
get the idea.
So there is something of a scaleability problem with fontconfig
and there was some recent discussion on this list on ignoring BDF
files and using enums instead of strcmp which long term could
mitigate this, but I doubt its that easy right now.

You could look at your fonts.conf (and perhaps local.conf)
and decide if you really need all of those, but be careful
unless you REALLY understand what you are doing.

-phil.



More information about the Fontconfig mailing list