Frage zur Kompilierung

Neue Frage »

Jacques Auf diesen Beitrag antworten »
Frage zur Kompilierung
Hallo,

Wenn man ein Dokument kompiliert, werden ja zuerst alle verwendeten Pakete durchgegangen (ich benutze MikTeX, aber bei anderen Distributionen müsste es ja ähnlich sein). Werden die Pakete dabei nur geladen oder schon konkret auf das Dokument angewandt?

Denn ich frage mich, ob man die Pakete irgendwie für spätere Kompilierungen „vorladen“ kann, um sie zu beschleunigen. Das Laden/Verarbeiten der Pakete nimmt m. E. die meiste Zeit in Anspruch, weil selbst Dokumente aus nur einem Zeichen kaum schneller kompiliert werden als lange Texte.
AD Auf diesen Beitrag antworten »

Was verstehst du unter "auf das Dokument angewandt" ? Wenn ich mal im Bild anderer Programmiersprachen bleibe, sind die Pakete bei der Einbindung erstmal nichts weiter als eine Sammlung von Unterprogrammen, die erst durch Befehle im Hauptprogramm (also Haupttext) aktiviert werden - vorerst aber nur "toter" bzw. "schlafender" Code. Ok, ganz stimmt das nicht, denn einige wenige Pakete nehmen ja schon allein durch das Einbinden Einfluss auf Layout oder Schriftart, etc. pp. vor.

Zur zweiten Frage: Soweit ich weiß, legt TeX nur zu den "Grundformaten", also wie LaTeX, pdfTeX, pdfLaTeX usw. eine Art Zwischencode (*.fmt) an, um die Complierung zu beschleunigen. Alles andere - also neben den Paketen auch die Grundklassen wie scrartcl etc. - wird bei jedem Kompilierlauf neu aus den reinen ASCII-Quellen geladen und interpretiert, also ohne "Vorladen". Je nach Betriebssystem sparst du höchstens etwas Zeit, wenn diese Dateien im Wiederholungs-Lauf noch im Festplattencache rumliegen, was je nach RAM-Ausstattung deines Computers mehr oder weniger wahrscheinlich ist.

Hundertprozentig sicher bin ich mir da aber nicht, also mal sehen, was Stefan_K dazu meint.
Jacques Auf diesen Beitrag antworten »

Hallo,

Tut mir leid, dass ich erst jetzt antworte. Ups

Zitat:
Original von Arthur Dent

Was verstehst du unter "auf das Dokument angewandt" ? Wenn ich mal im Bild anderer Programmiersprachen bleibe, sind die Pakete bei der Einbindung erstmal nichts weiter als eine Sammlung von Unterprogrammen, die erst durch Befehle im Hauptprogramm (also Haupttext) aktiviert werden - vorerst aber nur "toter" bzw. "schlafender" Code. Ok, ganz stimmt das nicht, denn einige wenige Pakete nehmen ja schon allein durch das Einbinden Einfluss auf Layout oder Schriftart, etc. pp. vor.


Ja, mit „anwenden“ meinte ich, dass TeX das Dokument durchgeht und die Pakete quasi überall dort zur Verfügung stellt, wo sie gebraucht werden (bei speziellen Befehlen o. ä.).

Da war ich mir halt nicht sicher, ob die Pakete erstmal alle als, wie Du schreibst, „toter Code“ geladen werden oder bei jeder Einbindung sofort auch das konkrete Dokument durchgegangen wird, ob die Pakete irgendwo gebraucht werden.



Zitat:
Original von Arthur Dent

Zur zweiten Frage: Soweit ich weiß, legt TeX nur zu den "Grundformaten", also wie LaTeX, pdfTeX, pdfLaTeX usw. eine Art Zwischencode (*.fmt) an, um die Complierung zu beschleunigen. Alles andere - also neben den Paketen auch die Grundklassen wie scrartcl etc. - wird bei jedem Kompilierlauf neu aus den reinen ASCII-Quellen geladen und interpretiert, also ohne "Vorladen". Je nach Betriebssystem sparst du höchstens etwas Zeit, wenn diese Dateien im Wiederholungs-Lauf noch im Festplattencache rumliegen, was je nach RAM-Ausstattung deines Computers mehr oder weniger wahrscheinlich ist.


OK. Ich hab aber ein Zusatzprogramm gefunden, mit dem man dieses „Vorkompilieren“ machen kann, zumindest innerhalb eines Dokuments:

LaTeXDaemon
AD Auf diesen Beitrag antworten »

Zitat:
Original von Jacques
Ich hab aber ein Zusatzprogramm gefunden, mit dem man dieses „Vorkompilieren“ machen kann, zumindest innerhalb eines Dokuments:

LaTeXDaemon

Aha - diese Zusatzentwicklung kannte ich bisher nicht. Ich hab allerdings auch nie nach sowas gesucht, da ich mit der Kompiliergeschwindigjkeit immer leidlich zufrieden war - selbst vor über 15 Jahren bei meiner Diplomarbeit, auf einem 386SX: Da habe ich eben immer nur den Teil übersetzt, an dem ich gerade gearbeitet hatte, unter Nutzung des \includeonly-Befehls. Augenzwinkern
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »