LuaLaTeX Performance-Problem

Klassen und Pakete zur einfachen Umsetzung individueller Vorstellungen


Bianca1504
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Mi 10. Mär 2021, 16:52

LuaLaTeX Performance-Problem

Beitrag von Bianca1504 »

Wie bereits in diesem Thread am Rande erwähnt, kann es, zumindest unter Win10/MiKTeX/LuaLaTeX, zu Performance-Problemen bei der gleichzeitigen Verwendung von scrlayer-scrpage und mathastext kommen. Ich selbst verwende mathastext zwar nicht, aber es ist wohl durchaus denkbar, dass die Thematik für andere User oder evtl. auch in einem ganz anderen Zusammenhang von Bedeutung sein könnte, so dass ich aus einem Pflichtgefühl heraus das Problem hier beschreibe. (Ich weiß natürlich nicht, ob es nun an scrlayer-scrpage oder an mathastext oder vielleicht sogar an MiKTeX liegt.)

Auf meinem ATX-System, in dem bisher noch ein i7-870 verbaut ist, benötigt jede einzelne Seite eines Dokumentes (selbst wenn gar keine Mathematik gesetzt ist) über eine Sekunde Kompilier-Zeit. Auf meinem 2016er Surface verhält es sich nahezu identisch.
Wenn ich die Antwort im oben erwähnten Thread richtig verstehe, möchte sie das Problem auf ein allgemeines Performance-Problem zurückführen ... - Selbstverständlich würde ich aber doch hier nicht die (sehr spezifische) Aussage treffen, dass es speziell bei der Kombination von scrlayer-scrpage und mathastext zu einer zehn bis zwanzig mal so langen Kompilier-Zeit der Seiten kommt, wenn es sich schlicht um ein generelles Performance-Problem handelte. (Ich bin keine IT-lerin, aber ganz doof bin ich nicht ... ;-)) Ich kann ansonsten beliebig 20 bis 30 verschiedene Pakete kombinieren, ohne dass es irgendeinen nennenswerten Einfluss auf die Kompilier-Zeit der einzelnen Seiten hätte. Die liegt normalerweise durchschnittlich nie über 100 ms. Wenn ich jedoch quasi lediglich scrlayer-scrpage und mathastext verwende, ohne weitere Pakete, liegt sie plötzlich bei mehr als dem Zehnfachen. Es hat auch nichts mit eingerichteten TEXMF-Bäumen zu tun (habe ich nochmal speziell getestet) und es funken auch keine anderen Anwendungen dazwischen (beim Kompilieren wird der Prozessor fast ausschließlich von LuaHBTeX verwendet).

Mir ist bewusst, dass sich das Problem hier online mit der TeXlive.net Kompilierung nicht in dieser auffälligen Weise reproduziert. Jedoch, wenn man bei folgendem Minimal-Beispiel mathastext oder scrlayer-scrpage auskommentiert, liegt die Kompilier-Zeit bei 12 bis 13 Sekunden, wenn man, anstatt mathastext, bspw. microtype hinzunimmt, führt dies zu keiner wahrnehmbaren Veränderung. Wenn man jedoch mathastext zu scrlayer-scrpage hinzunimmt, sind es 15 Sekunden und das obwohl überhaupt keine Mathematik gesetzt ist, jedoch microtype auf 232 Seiten zu Gange ist. Vielleicht doch ein Hinweis darauf, dass sich das Ganze auch unter TeXlive auswirken kann.

% !TEX program = lualatex
\documentclass{scrbook}

\usepackage[no-math]{fontspec}
\setmainfont{Latin Modern Roman}
\usepackage{lipsum}
\usepackage{mathastext}
\usepackage{scrlayer-scrpage}
\usepackage{luacode}

\begin{document}
\begin{luacode}
  for x=1,9 do
    tex.sprint(\luastring{\lipsum[1-150]})
  end
\end{luacode}
\end{document}

Vielleicht gibt es hier ja eine(n) Win10/MiKTeX-Nutzer(in), der/die das Minimal-Beispiel mal lokal testen möchte ... Würde mich interessieren, wie da das Ergebnis ausfällt.


MoeWe
Forum-Meister
Forum-Meister
Beiträge: 801
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Re: LuaLaTeX Performance-Problem

Beitrag von MoeWe »

Aktuelles MikTeX (also insbes LuaHBTeX, Version 1.13.0 (MiKTeX 21.3) [dev-id 7418], LaTeX2e <2020-10-01> patch level 4, luaotfload 2021-01-08 3.17, lualibs 2020-12-30 2.73, L3 programming layer <2021-02-18>, KOMA-Script 2021/03/17 v3.33, fontspec 2020/02/21 v2.7i, mathastext 2019/11/16 v1.3w) auf Win10 (Laptop i7-10750H, SSD) braucht bei mir

  • für das unmodifizierte Beispiel (mit allen Paketen) 110, 120, 105, 110 Sekunden,
  • ohne mathastext 13, 33, 16, 17, 17 Sekunden,
  • ohne scrlayer-scrpage 15, 15, 14, 12, 13 Sekunden,
  • ohne mathastext und ohne scrlayer-scrpage 12, 12, 14, 12, 13 Sekunden.

Um die reine Paketladezeit abschätzen zu können, habe ich das Beispiel auch einfach nur mit \lipsum getestet, da bekam ich mit allen Paketen etwa 5 Sekunden und ohne mathastext oder ohne scrlayer-scrpage auf etwa 4 Sekunden. (Hab jetzt keine großen Messreihen gemacht, möchte also nicht sagen, ob das signifikant ist oder nicht.)

Spiel morgen vielleicht mit Linux und TeX live 2021 rum.

edit 1 Mit TeX Live 2021 in einer Linux-VM auf dem gleichen Rechner sieht es etwas anders aus. In dem Beispiel konnte ich keinen signifikanten Unterschied wahrnehmen. Mit for x=1,80 do (ca. 2000 Seiten, 6MB-PDF) hatte ich in ein paar Durchläufen 1min 55sek für beide Pakete, etwa 1min 30sek ohne mathastext. Vom Gefühl waren die Laufzeiten recht konsistent an diesen Werten, aber es ist nicht der große Unterschied, den man bei MikTeX sieht.

Zuletzt geändert von MoeWe am Di 6. Apr 2021, 17:09, insgesamt 1-mal geändert.

Gute*r Gȧst*in

Re: LuaLaTeX Performance-Problem

Beitrag von Gute*r Gȧst*in »

Bei dem Original-Beispiel oben braucht bei mir der LaTeX-Ausgabe-Knopf ca. 13s, um das fertige PDF anzuzeigen. Lokal kann ich gerade nicht testen, weil ich derzeit das neue TeX Live 2021 installiere und das noch mindestens eine Stunde dauern wird.


Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Re: LuaLaTeX Performance-Problem

Beitrag von u_fischer »

miktex ist auch bei mir oft deutlich langsamer als texlive (einer der Gründe, warum ich derzeit meist mit texlive kompiliere). Dein Beispiel ist allerdings ziemlich extrem. Du kannst es ja mal im github von miktex melden, vielleicht findet Christian den Grund.


Nicht ganz neu hier

Re: LuaLaTeX Performance-Problem

Beitrag von Nicht ganz neu hier »

Warum wird eigentlich in dem Beispiel \setmainfont{Latin Modern Roman} verwendet? Ich dachte, das wäre die Voreinstellung mit fontspec. Wenn ich das rauslasse, ist das Beispiel bei mir mit MiKTeX extrem viel schneller.


Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Re: LuaLaTeX Performance-Problem

Beitrag von u_fischer »

Nicht ganz neu hier hat geschrieben:
Di 6. Apr 2021, 15:10

Warum wird eigentlich in dem Beispiel \setmainfont{Latin Modern Roman} verwendet? Ich dachte, das wäre die Voreinstellung mit fontspec. Wenn ich das rauslasse, ist das Beispiel bei mir mit MiKTeX extrem viel schneller.

Ja, aber das Beispiel soll ja demonstrieren, dass miktex unter bestimmten Bedingungen langsam ist. Da wäre es nicht so sinnvoll die Störfaktoren alle wegzulassen. Und mit anderen Schriften hat man den Effekt auch.


Bianca1504
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Mi 10. Mär 2021, 16:52

Re: LuaLaTeX Performance-Problem

Beitrag von Bianca1504 »

Nicht ganz neu hier hat geschrieben:
Di 6. Apr 2021, 15:10

Warum wird eigentlich in dem Beispiel \setmainfont{Latin Modern Roman} verwendet? Ich dachte, das wäre die Voreinstellung mit fontspec. Wenn ich das rauslasse, ist das Beispiel bei mir mit MiKTeX extrem viel schneller.

Ich habe "Latin Modern Roman" eingetragen, damit das Beispiel unverändert auf jedem System kompiliert werden kann. Selbst wenn ich einen Windows-System-Font genommen hätte, wäre der vielleicht auf Linux oder MacOS nicht vorhanden gewesen. Wenn man keinen Font definiert, verschwindet das Problem zwar (vermutlich weil mathastext dann gar nicht erst aktiv wird), aber die Nutzung von im OS installierten Fonts mittels fontspec ist ja einer der wichtigsten Gründe, überhaupt LuaLaTeX zu verwenden.


MoeWe
Forum-Meister
Forum-Meister
Beiträge: 801
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Re: LuaLaTeX Performance-Problem

Beitrag von MoeWe »

Hab den Tag über nebenbei auf dem Arbeitsrechner (Laptop, Ubuntu 18.04, i5-8250U) mit ganz frischem TeX Live 2021 ein paar Tests laufen lassen. Mit dem ursprünglichen Beispiel fand ich den Effekt zu klein, um ihn nicht auch auf Auslastungsschwankungen zurückzuführen, aber mit for x=1,90 do zeigt sich meiner Meinung nach ein deutlicheres Bild: die Laufzeit für ca. 2300 Seiten beträgt

  • mit allen Paketen etwa 3min 25sek,
  • ohne mathastext um die 2min 10sek,
  • ohne scrlayer-scrpage ca. 2min 5 sek.

Die Durchläufe habe ich natürlich mehrfach gemacht, das sind in etwa die Mittel.

Der Unterschied bei den letzten beiden Punkten scheint mir jetzt auf den ersten Blick nicht signifikant, aber mit beiden Paketen braucht es schon deutlich länger.

Unter etwas größerer Last (Videokonferenz) dauert es schon mal länger. Da hat es mit allen Pakete etwa 8min 55sek und ohne mathastext 6min 20sek gedauert. Aber da ist die Vergleichbarkeit nicht so gut gegeben.


Gute*r Gȧst*in

Re: LuaLaTeX Performance-Problem

Beitrag von Gute*r Gȧst*in »

Dass mehr zu durchlaufender Code bei TeX zwangsläufig mehr Zeit benötigt, dürfte jetzt nicht so wahnsinnig verwundern. Das ist nicht nur bei LuaLaTeX so. Dramatisch sind die von @MoeWe genannten Unterschiede jetzt IMHO nicht unbedingt, jedenfalls nicht so dramatisch wie bei MiKTeX.

Ich bin leider noch nicht dazu gekommen, mit TeX Live unter Windows zu testen. Die Installation ist irgendwann stehen geblieben bzw. die benötigte Zeit sprang irgendwann auf über 5 Stunden. Irgendwie tröpfeln die Pakete jetzt nur noch. Ich habe wohl einen schlechten Server erwischt. Derzeit wird tie installiert.


Gute*r Gȧst*in

Re: LuaLaTeX Performance-Problem

Beitrag von Gute*r Gȧst*in »

Inzwischen ist die Installation fertig. Mit TeX Live 2021 unter Windows 10 ist das Ergebnis vergleichbar mit dem im Online-Editor, sprich: Mit Verwendung von scrlayer-scrpage + mathastext dauert die Ausgabe aller Seiten ca. 30% länger als ohne die beiden Pakete. Das ist also weit weniger dramatisch als bei MiKTeX.


Antworten