Re: LuaLaTex extrem langsam in TeXLive 2026

"Hendrik Seliger" (via tex-d-l Mailing List) <[email protected]> Tue, 3 Mar 2026 16:26:11 +0100
Newsgroups gmane.comp.tex.german
Message-ID <[email protected]>
This is a multi-part message in MIME format...

------------=_1772551581-94205-357
Content-Type: multipart/alternative;
 boundary="------------0jwG2zkIAViZAe1Zj6HtlLoF"
Content-Language: de-DE
Content-Transfer-Encoding: 8bit

This is a multi-part message in MIME format.
--------------0jwG2zkIAViZAe1Zj6HtlLoF
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Genau, alles nur im MWE! Mein trace.log zeigt 1022555 (!!) access calls 
(also prüfen auf Existenz / Berechtigungen) und 1028411 openat calls, wo 
also versucht wird, die Datei zu öffnen. Das macht meine Ansicht nach 
eigentlich keinen Sinn. Da waren 90.000 Dateien im ~/texmf. Auch wenn 
wenig davon erfolgreich ist, gibt es schon einen Overhead.

Ich habe es jetzt etwas anders strukturiert und vor allem die 
Netzwerkpfade umgehängt. Jetzt sind es noch knapp 25.000 Dateien und 
noch etwa 14.000 openat und ähnlich viele access calls. Ich würde 
eigentlich erwarten, dass kpathsea max. 1x alle Dateien, für die kein 
ls-R vorhanden ist,  inventarisiert und dann aus der internen Datenbank 
liest. Dann sollten im MWE nicht viel mehr als 14.000 access und 
eigentlich nur eine handvoll openat im strace log auftauchen (dynamische 
Bibliotheken, format, …). Aber gut, würde ich gerne genauer verstehen, 
aber da fehlt mir jetzt die Zeit, um tiefer zu graben.

Dennoch danke für die Hilfe (und das Angebot, das strace.out 
durchzuforsten!).

Beste Grüße
Hendrik

On 03.03.26 15:06, Harald Koenig (via tex-d-l Mailing List) wrote:
> On Mar 03, Hendrik Seliger wrote:
>
>> Hallo!
>>
>> Danke für Eure Antworten! Erst einmal: die 5s scheinen bei mir „normal“, was
>> an der Zahl der installierten otf-Fonts zu liegen scheint. Ich habe zwar
>> fast alle über Font Manager deaktiviert, aber lualatex scheint da einiges zu
>> laden. Das war aber schon immer so. Dramatisch wird es erst, wenn ich große
>> OTF-Fonts für unicode-math lade, das kostet schnell 45s extra. Und das auf
>> einem Intel(R) Core(TM) Ultra 9 285K mit 64GB Ram und SSD-Laufwerken… Aber
>> das ist ein anderes Thema, denn das war schon bei tl2025 so.
> wichtig: ich tippe immer ueber dein mini-beispiel!
>
> viele OTF fonts sollten doch keine rolle spielen, dafuer wird doch der font cache angelegt und verwendet?!
> und bei deinem MWE braucht es ja wirklich nicht viele fonts;)
>
> bei meinem test sind das genau 2 font-zugriffe:
>
> $ grep openat.*otf\" strace.out
> 2832923 1772532903.257121 (+     0.025928) openat(AT_FDCWD, "/usr/share/fonts/texlive-lm/lmroman10-regular.otf", O_RDONLY) = 3 <0.000191>
> 2832923 1772532903.272072 (+     0.000097) openat(AT_FDCWD, "/usr/share/fonts/texlive-lm/lmroman10-regular.otf", O_RDONLY) = 3 <0.000020>
>
> und dann sehr ueberraschend fuer aus /usr/share/fonts/texlive-lm/ (also dem TeX von openSUSE)
> und *nicht* wie erwartet /usr/local/texlive/2026/texmf-dist/fonts/opentype/public/lm/lmroman10-regular.otf
>
> schon wieder was zum debuggen und verstehen -- danke;)
>
>
>> Aber die Ursache habe ich jetzt gefunden: da ich viele Dateien täglich
>> wiederverwende und sie daher im texmf-Pfad lasse, um sie in vielen Dateien
>> einbinden zu können – liegen da durchaus viele Dateien. Knapp 90.000 in etwa
>> 8.000 Ordnern… das Problem: da sind auf dem ausgebremsten Rechner Links auf
>> einen Netzwerkpfad, das kann natürlich richtig Zeit kosten… Nehme ich die
>> weg, dann bin ich bei real 1.7s. Passt.
> ok, netzlaufwerke koennen beliebig zeit kosten...
>
>> ABER: Was mich im strace wundert ist, dass auf praktisch jede im User
>> texmf-Order liegende Datei versucht wird zuzugreifen. Dazu versucht lualatex
>> in jedem Unterorder, sowohl im System- wie im User-texmf-Folder Dateien à la
>> lualatexquotejobname, lua.lua, lua.luc, lua.luatex, lua.tlu, lua.texlua,
>> lua.texluc, luaotfload-configuration zu öffnen, was jedesmal Fehler gibt.
>> Das kostet auch auf einem schnellen Rechner Zeit (@Harald: der strace-Output
>> ist übringens so 550 bzw 650MB (!!!), also nichts mehr für ein Email).
> fuer dein MWE??? oder dein eigentliches opus?
> egal, mit "xz" passt das wieder problemlos in eine email;)
>
>      $ ll -h strace.out*
>      -rw-r--r-- 1 harald users  12M Mar  3 11:15 strace.out
>      -rw-r--r-- 1 harald users 148K Mar  3 14:33 strace.out.xz
>
>
>> Warum aber werden die alle gelesen?? Und warum ist dann anscheinend in
>> tl2026 anders, als in 2025? Wäre schon interessant zu wissen!
> hast du irgendwelche TEX... environment variablen gesetzt?
> ich meine, das hebelt teilweise die mktexlsr caches aus.
>
> bei meinem strace auf dein MWE werden gerade mal 97 dateien wirklich geoeffnet,
> darunter 86 unterschiedliche und ein paar mehrfach-zugriffe:
>
>      $ grep openat strace.out | egrep -v 'ENOENT|O_DIR' -c
>      97
>      $ grep openat strace.out | egrep -v 'ENOENT|O_DIR' | cut -d\" -f2 | sort | uniq -c | sort -n | wc -l
>      86
>      $ grep openat strace.out | egrep -v 'ENOENT|O_DIR' | cut -d\" -f2 | sort | uniq -c | sort -n
>      ...
>      
>
>> Irgendwie kann man bestimmt Pfade auf eine Blacklist setzen für kpathsea, so
>> dass man lualatex hier einbremsen kann, ohne die Ordnerstruktur anpassen zu
>> müssen. Ich werde mal recherchieren.
> viel erfolg & lass uns wissen!!
>
>
> Harald
>
--------------0jwG2zkIAViZAe1Zj6HtlLoF
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Genau, alles nur im MWE! Mein trace.log zeigt 1022555 (!!) access
      calls (also prüfen auf Existenz / Berechtigungen) und 1028411
      openat calls, wo also versucht wird, die Datei zu öffnen. Das
      macht meine Ansicht nach eigentlich keinen Sinn. Da waren 90.000
      Dateien im ~/texmf. Auch wenn wenig davon erfolgreich ist, gibt es
      schon einen Overhead. </p>
    <p>Ich habe es jetzt etwas anders strukturiert und vor allem die
      Netzwerkpfade umgehängt. Jetzt sind es noch knapp 25.000 Dateien
      und noch etwa 14.000 openat und ähnlich viele access calls. Ich
      würde eigentlich erwarten, dass kpathsea max. 1x alle Dateien, für
      die kein ls-R vorhanden ist,  inventarisiert und dann aus der
      internen Datenbank liest. Dann sollten im MWE nicht viel mehr als
      14.000 access und eigentlich nur eine handvoll openat im strace
      log auftauchen (dynamische Bibliotheken, format, …). Aber gut,
      würde ich gerne genauer verstehen, aber da fehlt mir jetzt die
      Zeit, um tiefer zu graben.</p>
    <p>Dennoch danke für die Hilfe (und das Angebot, das strace.out
      durchzuforsten!).</p>
    <p>Beste Grüße<br>
      Hendrik<br>
      <br>
    </p>
    <div class="moz-cite-prefix">On 03.03.26 15:06, Harald Koenig (via
      tex-d-l Mailing List) wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:[email protected]">
      <pre wrap="" class="moz-quote-pre">On Mar 03, Hendrik Seliger wrote:

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Hallo!

Danke für Eure Antworten! Erst einmal: die 5s scheinen bei mir „normal“, was
an der Zahl der installierten otf-Fonts zu liegen scheint. Ich habe zwar
fast alle über Font Manager deaktiviert, aber lualatex scheint da einiges zu
laden. Das war aber schon immer so. Dramatisch wird es erst, wenn ich große
OTF-Fonts für unicode-math lade, das kostet schnell 45s extra. Und das auf
einem Intel(R) Core(TM) Ultra 9 285K mit 64GB Ram und SSD-Laufwerken… Aber
das ist ein anderes Thema, denn das war schon bei tl2025 so.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
wichtig: ich tippe immer ueber dein mini-beispiel!

viele OTF fonts sollten doch keine rolle spielen, dafuer wird doch der font cache angelegt und verwendet?!
und bei deinem MWE braucht es ja wirklich nicht viele fonts;)

bei meinem test sind das genau 2 font-zugriffe:

$ grep openat.*otf\" strace.out 
2832923 1772532903.257121 (+     0.025928) openat(AT_FDCWD, "/usr/share/fonts/texlive-lm/lmroman10-regular.otf", O_RDONLY) = 3 &lt;0.000191&gt;
2832923 1772532903.272072 (+     0.000097) openat(AT_FDCWD, "/usr/share/fonts/texlive-lm/lmroman10-regular.otf", O_RDONLY) = 3 &lt;0.000020&gt;

und dann sehr ueberraschend fuer aus /usr/share/fonts/texlive-lm/ (also dem TeX von openSUSE)
und *nicht* wie erwartet /usr/local/texlive/2026/texmf-dist/fonts/opentype/public/lm/lmroman10-regular.otf

schon wieder was zum debuggen und verstehen -- danke;)


</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Aber die Ursache habe ich jetzt gefunden: da ich viele Dateien täglich
wiederverwende und sie daher im texmf-Pfad lasse, um sie in vielen Dateien
einbinden zu können – liegen da durchaus viele Dateien. Knapp 90.000 in etwa
8.000 Ordnern… das Problem: da sind auf dem ausgebremsten Rechner Links auf
einen Netzwerkpfad, das kann natürlich richtig Zeit kosten… Nehme ich die
weg, dann bin ich bei real 1.7s. Passt.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
ok, netzlaufwerke koennen beliebig zeit kosten...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">ABER: Was mich im strace wundert ist, dass auf praktisch jede im User
texmf-Order liegende Datei versucht wird zuzugreifen. Dazu versucht lualatex
in jedem Unterorder, sowohl im System- wie im User-texmf-Folder Dateien à la
lualatexquotejobname, lua.lua, lua.luc, lua.luatex, lua.tlu, lua.texlua,
lua.texluc, luaotfload-configuration zu öffnen, was jedesmal Fehler gibt.
Das kostet auch auf einem schnellen Rechner Zeit (@Harald: der strace-Output
ist übringens so 550 bzw 650MB (!!!), also nichts mehr für ein Email).
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
fuer dein MWE??? oder dein eigentliches opus?
egal, mit "xz" passt das wieder problemlos in eine email;)

    $ ll -h strace.out*
    -rw-r--r-- 1 harald users  12M Mar  3 11:15 strace.out
    -rw-r--r-- 1 harald users 148K Mar  3 14:33 strace.out.xz


</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">
Warum aber werden die alle gelesen?? Und warum ist dann anscheinend in
tl2026 anders, als in 2025? Wäre schon interessant zu wissen!
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
hast du irgendwelche TEX... environment variablen gesetzt?
ich meine, das hebelt teilweise die mktexlsr caches aus.

bei meinem strace auf dein MWE werden gerade mal 97 dateien wirklich geoeffnet,
darunter 86 unterschiedliche und ein paar mehrfach-zugriffe:

    $ grep openat strace.out | egrep -v 'ENOENT|O_DIR' -c
    97
    $ grep openat strace.out | egrep -v 'ENOENT|O_DIR' | cut -d\" -f2 | sort | uniq -c | sort -n | wc -l
    86
    $ grep openat strace.out | egrep -v 'ENOENT|O_DIR' | cut -d\" -f2 | sort | uniq -c | sort -n
    ...
    

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Irgendwie kann man bestimmt Pfade auf eine Blacklist setzen für kpathsea, so
dass man lualatex hier einbremsen kann, ohne die Ordnerstruktur anpassen zu
müssen. Ich werde mal recherchieren.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
viel erfolg &amp; lass uns wissen!!


Harald
</pre>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
    </blockquote>
  </body>
</html>

--------------0jwG2zkIAViZAe1Zj6HtlLoF--


------------=_1772551581-94205-357
Content-Type: text/plain; charset="UTF-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0

-- 
FAQ: http://texfragen.de/
Durchsuchbares Archiv: https://www.listserv.dfn.de/sympa/arc/tex-d-l 
Unsubscribe/Verwaltung: https://www.listserv.dfn.de/sympa/info/tex-d-l
------------=_1772551581-94205-357--