TeX ran out of virtual memory

Neue Frage »

Iridium Auf diesen Beitrag antworten »
TeX ran out of virtual memory
Hallo,

Ich habe ein Problem mit LaTeX.

Ich habe an der Uni ein LaTeX Dokument geschrieben, in dem in einer pspicture Umgebung über multido Befehle einfache graphische Objekte platziert werden. Die Kompilation in ein ps Dokument funktionierte soweit ohne Probleme.

Dann habe ich dasselbe Dokument versucht auf meinem Laptop zu kompilieren, und eine TeX Fehlermeldung bekommen, und zwar zuerst eine, die sich auf die Größe von mem_max in der Kofigurationsdatei miktex.ini bezog. Nachdem ich dort die Speichergröße angepasst hatte (was auf dem Uni-Rechner ebenfalls problemlos ging), bekam ich auch keine LaTeX-Fehlermeldung mehr, aber die Erzeugung des ps Dokuments funktionierte trotzdem nicht, jetzt mit der Meldung

"e-TeX ran out of virtual memory while allocating 4294967288 bytes for 'mem' ! Remedy: You can try to increase virtual memory, (i.e., increase the size of the Windows paging file). Or you can try to lower e-TeX's consumption of virtual memory by editing miktex.ini."

Das blöde ist jetzt:

1.) Ich habe den virtuellen Speicher in Windows bereits auf dem Maximalwert 4095 MB stehen. Mehr will XP nicht zulassen.

2.) In der miktex.ini kann man bezüglich der e-TeX Speichernutzung offensichtlich nichts verstellen. Oder gibt es einen kryptischen Befehl, den ich nur nicht kenne?

3.) Dummerweise funktioniert die Kompilation einfacherer Dokumente in ps jetzt auch nicht mehr, mit derselben Fehlermeldung. Es ist aber ausgeschlossen, daß es an diesen Dokumenten liegt, weil sie alle schon mal problemlos kompilieren gingen und nichts am Quellcode verändert wurde.

4.) Frage am Rande: Wieso sind die Memory Werte in den TeX ini Files meistens so niedrig eingestellt? Wieso verbraucht das Setzen von ein paar Graphikobjekten überhaupt so viel Speicherbedarf?

5.) Wie kann man das Problem ein für allemal umgehen? Ich finde es traurig, daß TeX an dieser Stelle schlechter abschneidet, als ein billiges Zeichenprogramm, mit dem man von Hand das ganze erzeugen könnte (was man aber nicht will, weil es genau sein muß).

Wie gesagt. Ich habe den Quelltext wirklich überprüft, daran kann es eigentlich nicht liegen.

Danke für jeden Hinweis.
AD Auf diesen Beitrag antworten »

Zitat:
Original von Iridium
Wie gesagt. Ich habe den Quelltext wirklich überprüft, daran kann es eigentlich nicht liegen.

Sicher? Wenn dem TeX-Compiler 4 Gigabyte nicht genug sind, dann würde ich eher auf eine außer Kontrolle geratene Rekursion tippen.
Iridium Auf diesen Beitrag antworten »

Ja, bin mir da ziemlich sicher.

1.) Hat die Kompilierung auf einem anderen PC (also auch keinem mit Mörder RAM oder so) einwandfrei geklappt und ich habe nichts im Dokument verändert.

2.) Funktioniert jetzt auch alles andere nicht mehr! Also z.B. auch TeX Dokumente nur mit Text. Wenn ich im anderen Fall das mit der außer Kontrolle geratenen Rekursion noch glauben könnte, wüsste ich nicht, was dort schief läuft.

Ach so, ich habe auch schon versucht die temporären Files (*.aux etc.) zu löschen und weil mir nichts besseres eingefallen ist, auch mal den Rechner neu gestartet. Bringt leider nichts.
AD Auf diesen Beitrag antworten »

Wenn's auf anderen Rechnern geht, dann ist der Wurm in deiner TeX-Installation. Mit "Quelltext" habe ich eben nicht nur deinen TeX-Text gemeint, sondern auch den aller Style-, Ini- usw. -files, aus denen eine TeX-Installation nun mal besteht.

Mit welchen Windows arbeitest du übrigens? Beim 32Bit-Windows kannst du nur 2GB, mit einigen Tricks maximal 3GB virtuellen Speicher pro Prozess belegen, dann ist finito. Wenn du also die für TeX-Verhältnisse exorbitanten 4GB als Limit einstellst, dann kann Windows die gar nicht liefern. unglücklich
Calvin Auf diesen Beitrag antworten »

Zitat:
Original von Iridium
2.) Funktioniert jetzt auch alles andere nicht mehr! Also z.B. auch TeX Dokumente nur mit Text.


Hast du alle Speicheränderungen mal wieder rückgängig gemacht? Hast du MikTeX mal komplett aktualisiert?
Iridium Auf diesen Beitrag antworten »

Zitat:
Original von Arthur Dent
Wenn's auf anderen Rechnern geht, dann ist der Wurm in deiner TeX-Installation. Mit "Quelltext" habe ich eben nicht nur deinen TeX-Text gemeint, sondern auch den aller Style-, Ini- usw. -files, aus denen eine TeX-Installation nun mal besteht.


Mag sein. Dann muß der Fehler aber durch das Kompilieren erst reingekommen sein (vorher lief alles bestens) und vor allem jetzt dauerhaft irgendwo stehen (nachher lief gar nichts mehr). Aber wie erklärt sich e-TeXs Fehlermeldung bei normalen Textdokumenten, die ansonsten fehlerfrei zu Ende kompiliert werden, ohne daß allerdings eine Ausgabedatei erzeugt wird? Es sieht auch eher nach Pseudokompilation aus...weil zwar die Meldungen alle wie gewöhnlich ablaufen, aber Veränderungen im Dokument nicht registriert werden (ich hab nämlich auch zuerst an einen einfachen Fehler gedacht und erst mal alles möglicherweise problematische auskommentiert, bringt aber nichts).

Zitat:
Original von Arthur Dent
Mit welchen Windows arbeitest du übrigens? Beim 32Bit-Windows kannst du nur 2GB, mit einigen Tricks maximal 3GB virtuellen Speicher pro Prozess belegen, dann ist finito. Wenn du also die für TeX-Verhältnisse exorbitanten 4GB als Limit einstellst, dann kann Windows die gar nicht liefern. unglücklich


Ok. Dann kann mein Windows, die wohl gar nicht erst liefern. Ich mein, ich hätte es auch nicht wirklich für nötig gehalten den Speicher so aufzublähen, aber wenn's denn funktioniert hätte, hätte ich keine weiteren Fragen mehr gestellt :-).
 
 
Iridium Auf diesen Beitrag antworten »

Zitat:
Original von Calvin
Zitat:
Original von Iridium
2.) Funktioniert jetzt auch alles andere nicht mehr! Also z.B. auch TeX Dokumente nur mit Text.


Hast du alle Speicheränderungen mal wieder rückgängig gemacht? Hast du MikTeX mal komplett aktualisiert?


Ja. Auch das habe ich versucht. Alles auf die vorherigen Werte und die format files etc. neu erstellen lassen. Deswegen gehen mir inzwischen auch langsam die Ideen aus. Ich benutze TeX ja schon länger und hatte auch schon mal Probleme wo das auch geholfen hat, aber in dem Fall leider nicht.
AD Auf diesen Beitrag antworten »

Lässt sich denn den Informationen des Logfile so gar nicht entnehmen oder zumindest eingrenzen, wo das TeX aussteigt?
Iridium Auf diesen Beitrag antworten »

Er legt erst gar keins an!

Er findet/erzeugt auch kein *.aux file...im Grunde macht er glaub ich gar nichts mehr. Aber ich weiß nicht, woran es liegt. Es betrifft alle LaTeX Dokumente. Selbst minimalste Minimalbeispiele, die nur aus \documentclass \begin/\end{document} und Hello World :-) bestehen. Sprich...alle Versuche zu dem Zustand VOR der Fehlermeldung zurückzukommen sind bisher gescheitert. Ich seh schon, daß ich TeX wohl neu installieren muß, wollte das aber wenn möglich vermeiden, weil das Dokument an dem ich grad sitze meine Doktorarbeit ist und ich nicht ewig viel Zeit mit technischen Problemen vertun will. Aber irgendwann geht es bestimmt schneller so, fürchte ich.
Iridium Auf diesen Beitrag antworten »

Falls noch ein LaTeX Crack mitliest...

1) Aus welchem Grund sind die default Werte, was den Speicherbedarf betrifft, in der Konfigurationsdatei eigentlich immer so "niedrig" gesetzt? Wieso nicht von Haus aus, auf die Maximalwerte, wo das geht? (z.B. bei mem_max)

2) Wie ändert man diese Werte bei MikTeX Versionen über 2.6, in denen es keine miktex.ini mehr gibt? (und auch keine texmf.cnf) Und bitte wenn möglich nicht kommandozeilenbasiert, wenn man schon Windows benutzt. Oder geht das nicht anders? Wenn ja, warum eigentlich nicht?

3) MikTeX 2.7 schaut ja nett aus, so mit Graphikvorschau im Lupenwerkzeug etc. Aber warum braucht es zehnmal so lange zum kompilieren? Deshalb? Können fortgeschrittene Versionen eines Programmes nicht einmal schlanker und schneller sein, als die alten?

By the way wäre es wirklich schön, wenn TeX sich dazu entwickeln würde, daß man es mal problemlos ohne das ganze Gehacke installieren könnte. Ok, ok, gegenüber noch älteren Versionen sind die neuen wirklich schon sehr komfortabel. Aber muß man solche Sachen wie die main memory size denn wirklich jedesmal von Hand ändern und ähnliche Dinge mehr? Wenn ich nicht aus Erfahrung genau wüsste, daß Word der Horror ist, könnte man dran verzweifeln...
AD Auf diesen Beitrag antworten »

Zitat:
Original von Iridium
Aber muß man solche Sachen wie die main memory size denn wirklich jedesmal von Hand ändern und ähnliche Dinge mehr?

Ehrlich gesagt habe ich an solchen Dingen zum letzten Mal vor ca. 15 Jahren Hand anlegen müssen. Das war noch zu MS-DOS-Zeiten, wo der Speicher für TeX wirklich knapp werden konnte (640kByte !!!) ...

Vielleicht kann Stefan_K mal was dazu sagen, denn dein ungeheurer TeX-Speicherhunger kommt mir nicht geheuer vor. Ich bin jedenfalls nach wie vor fest der Meinung, es handelt sich hier um eine unkontrollierte Rekursion, die den Speicher zumüllt.
Iridium Auf diesen Beitrag antworten »

Zitat:
Original von Arthur Dent
Ich bin jedenfalls nach wie vor fest der Meinung, es handelt sich hier um eine unkontrollierte Rekursion, die den Speicher zumüllt.


Ich stimme dir zu, daß das als Ursache möglich ist. Aber kann man damit TeX gleich so zerschroten, daß sich andere Dokumente auch nicht mehr kompilieren lassen? Ich dachte, wenn man die fehlerhafte Rekursion auskommentiert, dann sollte es wieder gehen. War zumindest bisher immer so. Na ja, vermutlich hast du aber Recht und es ist sinnvoll nochmal Stefan Ks Kommentar dazu abzuwarten. Vielleicht kennt er die Fehlermeldung schon zur Genüge :-)...
Iridium Auf diesen Beitrag antworten »

Ich habe inzwischen den "Fehler" gefunden...

Ich hatte bei der ersten Fehlermeldung (TeX capacity exceeded main memory size usw.) in der miktex.ini Datei den Wert für mem_max auf 1 073 741 822 gestellt, weil dort zu lesen ist, daß der "Greatest index in TeX's internal mem array; must be strictly less than 1 073 741 823" zu sein hat.

Danach war der LaTeX-Result Fehler zwar weg, dafür aber die zweite Fehlermeldung (e-TeX ran out of virtual memory usw.) da.

Bei der Neuinstallation und gleichzeitigem Kompilieren habe ich festgestellt, daß dieser Fehler genau in dem Moment wieder verschwunden ist, in dem das miktex-config.cab Dateiverzeichnis installiert wird, in dem letztlich nur drei Dateien, darunter miktex.ini zu finden sind.

Also habe ich den max_mem Wert mal wieder deutlich reduziert (ich glaubte das vorher eigentlich schon mehrfach ausprobiert zu haben) und siehe da...es geht wieder.

Durch etwas Ausprobieren habe ich herausgefunden, daß die Kompilierung bis zu einem Wert von 200 015 867 problemlos läuft, und ab einem Wert von 200 015 868 die bekannte Fehlermeldung erzeugt wird.

Wieso und weshalb habe ich jetzt zwar nicht verstanden (Vielleicht liegt es an meinen Systemeinstellungen (Größe der Auslagerungsdatei?)? Vielleicht kann jemand von euch es erklären?), aber es geht ja wieder, da will ich mal nicht so anspruchsvoll sein.

Wie gesagt...wenn jemand versteht, warum ich nicht das Maximum ausreizen kann, das TeX normalerweise noch erlauben würde und wie man es evtl. sogar noch erreichen kann, dann würde mich das freuen.

Gruß und vielen Dank für die Diskussionsbeiträge zwischendurch...
Iridium Auf diesen Beitrag antworten »

P.S. Nur falls sich jemand wundert, warum ich anscheinend so viel Speicher brauche...ich habe mit multido Befehlen ein ca. 17 000 Punkte umfassendes geometrisches Raster gesetzt plus ein paar weitere Grafikobjekte (clipping etc.), um es fourierzutransformieren. pstricks erschien mir dafür gut geeignet, wegen der Einfachheit und Genauigkeit der Umsetzung. Da ich die Auswirkung von Abbrucheffekten bei einem endlichen Muster vermindern wollte, konnten es also gar nicht genug Rasterpunkte sein. Offensichtlich ist aber irgendwann Schluß mit lustig. :-)
AD Auf diesen Beitrag antworten »

Nur mal so beiläufig: In meiner MiKTeX-2.7.-Installation finde ich gar keine miktex.ini mehr. Ich glaube mich zu erinnern, dass die früher (also 2.5, 2.6) mal im Unterverzeichnis miktex/config/ zu finden war. verwirrt

Wird vielleicht gar nicht mehr gebraucht.
Iridium Auf diesen Beitrag antworten »

Das ist richtig. Seit Version 2.6 gibt es keine miktex.ini mehr. Da ich aber Version 2.7 ausprobiert habe und sie vor allem wesentlich länger gebraucht hatte, um standardmäßig zu kompilieren (zehnmal so lang), ohne sonstwie für mich erkennbare Vorteile bei der Erstellung meiner Arbeit zu haben, bin ich wieder zurück auf Version 2.4 gewechselt. Bzw. habe ich beide Versionen auf dem PC und ändere nur die Ausgabeprofile in TeXnicCenter bei Bedarf. Das geht ganz gut. Wie man die Speicherwerte bei den neuen Versionen ändert (vermutlich kommandozeilenbasiert), damit habe ich mich noch nicht auseinandergesetzt. Solange man ein System hat, das die Ansprüche erfüllt. Und es stimmt ja auch, bis auf solche Sonderanwendungen muß man eher selten manuell eingreifen.
Neue Frage »
Antworten »



Verwandte Themen

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