Trevor, did you compile it from scratch or are you using the packaged binary?
On Thu, Mar 23, 2017 at 11:42 AM, Trevor <trevordi...@gmail.com> wrote: > I don't know enough to be very helpful, but I can report that on Ubuntu, I > also see "992 5953 90234" from strace. > > On Tue, Mar 21, 2017 at 10:33 AM Han-Wen Nienhuys <hanw...@gmail.com> wrote: >> >> the repeating syscall is the read, on the same file descriptor. If >> fontconfig failed a cache, you'd more likely see >> >> open() = 6 >> read(6, .. ) >> close(6) >> open() = 6 >> read(6, .. ) >> close(6) >> >> I think. >> >> I'll have a look again tonight. Maybe I can attach a debugger (my >> machine has long lost the ability to compile lilypond. Sigh.) >> >> On Tue, Mar 21, 2017 at 5:00 AM, Werner LEMBERG <w...@gnu.org> wrote: >> > >> >>> "The culprit is that the lilypond binary has a bit sub-optimal file >> >>> access pattern (opening the same file thousands of times and >> >>> reading it byte by byte, causing a syscall flood - nearly 500K >> >>> lseek and read operations). On a local machine, because of this >> >>> issue, it will spend about 1s in I/O syscalls, which is half of the >> >>> total execution time. This currently does not play nice with our >> >>> systems, getting it from 1s to over half a minute." >> > >> > Interesting, I don't get this behaviour on my openSuSE GNU/Linux box. >> > >> >> The font support is reading the same section of some font file over >> >> and over again. >> >> >> >> $ cat f.ly >> >> { c } >> >> $ strace -e trace=open,read lilypond f.ly >& log ; grep OTTO log|wc >> >> 992 5953 90234 >> > >> > On my box this is >> > >> > 1 6 88 >> > >> >> $ grep OTTO log|head -10 >> >> read(6, "OTTO\0\r\0\200\0\3\0PCFF >> >> \364\24\241\262\0\0\t\334\0\0\373PFFTM"..., 4096) = 4096 >> >> read(6, "OTTO\0\r\0\200\0\3\0PCFF >> >> \364\24\241\262\0\0\t\334\0\0\373PFFTM"..., 4096) = 4096 >> >> read(6, "OTTO\0\r\0\200\0\3\0PCFF >> >> \364\24\241\262\0\0\t\334\0\0\373PFFTM"..., 4096) = 4096 >> >> >> >> the number of calls is apparently proportional to the number of glyphs >> >> in the file: >> >> >> >> $ cat f.ly >> >> \repeat unfold 100 { c } >> >> >> >> $ strace -e trace=open,read lilypond f.ly >& log ; grep OTTO log|wc >> >> 40929 245575 3724501 >> > >> > For me, it is again >> > >> > 1 6 88 >> > >> >> Werner may have better hunches than I which code is really >> >> responsible for this. >> > >> > Maybe a problem with fontconfig? Where is the location of >> > fontconfig's database of available fonts on your system? This must be >> > created in advance so that lilypond can access it. If it is missing, >> > fontconfig tries to build it (which makes e.g. the first invocation of >> > lilypond very slow on a Windows box since there is no global >> > fontconfig database). >> > >> > Is it possible that fontconfig always fails so that it tries again and >> > again? >> > >> > >> > Werner >> >> >> >> -- >> Han-Wen Nienhuys - hanw...@gmail.com - http://www.xs4all.nl/~hanwen -- Han-Wen Nienhuys - hanw...@gmail.com - http://www.xs4all.nl/~hanwen _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel