Das ist also eine ganz einfache Frage. Wenn auf meiner Entwicklungsmaschine mit begrenztem RAM (8 GB RAM, Win 7 x64, 8 GB Auslagerungsdatei) der verfügbare RAM aufgebraucht ist, werden die Programme zuerst langsamer und stürzen schließlich ab. Meistens stürzt die JVM zuerst ab, und zwar sehr erfreulicherweise. Wie ist das möglich? Es ist, als gäbe es überhaupt keine Auslagerungsdatei, aber wenn ich das 8. GB des verwendeten RAM erreiche, stürzt die JVM (und manchmal auch andere Programme) fast sofort ab.
Ja, ich kenne alle Paging-Mechanismen, die hauptsächlich von HW eingesetzt werden, sehr gut. Diese sollten wiederum mit der Auslagerungsdatei so funktionieren, als ob genügend RAM verfügbar wäre, ohne zu wissen, ob die Auslagerungsdatei verwendet wird oder überhaupt existiert. Warum beobachte ich also tatsächlich ein ganz anderes Verhalten?
Antwort1
Können Sie jprofiler ausführen und den Heap-Speicher untersuchen? Außerdem ist der Speicherbedarf für das ausgeführte Java-Programm nicht klar. Normalerweise gelten 8 GB RAM als angemessen. Wenn das Java-Programm viele Threads erstellt und die Threads nicht beendet werden, kann dies alle diese Probleme verursachen. Bitte überprüfen Sie das Java-Programm hinsichtlich der Menge der erstellten Objekte und der Thread-Art.