bug-lilypond
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Lilypond taking forever to typeset


From: Mojca Miklavec
Subject: Re: Lilypond taking forever to typeset
Date: Wed, 13 Jul 2016 08:11:52 +0200

On 12 July 2016 at 16:36, Werner LEMBERG wrote:
>
>>> #0  0x00b40bb6 in TT_Load_Simple_Glyph ()
>
> This comes from fontconfig, I think.  Do you probably have added the
> whole TeXLive font tree to fontconfig?  This makes fontconfig slooow,
> at least on my GNU/Linux box...

No, I didn't. A lot of time is spent iterating though some huge system
fonts (notably those for supporting Chinese, Japanese etc.)

>>> I don't see any viable alternative other than rewriting some
>>> portions to use the native system library calls to get information
>>> about fonts.
>
> The question is whether 2.5 minutes is expected for creating the font
> cache.  If you say
>
>   fc-list
>
> on the command line, how many fonts are listed?  On my box, due to
> TeXLive, I have more than 9000 fonts...

1700

But many of those fonts are super quick to process and the longest
delay comes from
    /Library/Fonts: caching, new cache contents: 414 fonts, 1 dirs
while stuff like
    /usr/X11/lib/X11/fonts/100dpi: caching, new cache contents: 398
fonts, 0 dirs
needs just a second.

> Another test is to find out how long
>
>   fc-cache --verbose --force
>
> needs for building the whole cache – I think something similar to this
> is what lilypond triggers if run the first time.

Yes, it requires 2,5 – 3,5 minutes. This is consistent with what is
observed in LilyPond's first run.

I wonder if fc-cache became more "nosy", trying to extract more data
from fonts than it did in the past or if it's just my perception (or
perhaps my computer became slower :).

In any case I don't think that LilyPond can actually do much to
improve the timing, but:
- it really should print the warning before starting font database
generation (I was sure that my lilypond was broken and deleted it
earlier)
- it could potentially only trigger font database generation when at
least one font change is requested
- it could use system library calls to find fonts, but that's probably
a lot of work and doesn't really bring anything other than decrease
the waiting time once in a while (in that case time would be better
spent improving fc than lilypond)

Mojca



reply via email to

[Prev in Thread] Current Thread [Next in Thread]