Wie kann man einen Java-Prozess auf eine bestimmte Menge RAM beschränken?

4262
AngryHacker

Ich versuche, Minecraft auf ein gewisses Maß an Erinnerung zu beschränken. Zu diesem Zweck starte ich es aus einer Batchdatei mit der folgenden Zeile:

javaw -Xms256M -Xmx256M -cp Minecraft.exe net.minecraft.LauncherFrame 

aber es geht routinemäßig über 800 MB.

Ich habe auch versucht, das Java-Applet in der Systemsteuerung aufzurufen. Dann zur Java-Registerkarte / Ansicht ... und dann den folgenden Laufzeitparameter hinzugefügt:

-Xmx256m 

Das hat auch nicht geholfen.

Was kann ich tun, um einen Java-Prozess (oder zumindest Minecraft im Besonderen) auf 256 MB RAM zu beschränken.

4
Es kann sein, dass das Ausführen von Minecraft mehr als nur die Zuweisung erfordert. Ich weiß aus Erfahrung, obgleich Java unter Linux nur dann gegessen wird, wenn Sie es nicht genug geben, um damit zu beginnen. Sollte eine Ausnahme aus dem Haufen werfen, aber das passiert nicht immer madmaze vor 13 Jahren 0

1 Antwort auf die Frage

4
MSalters

-Xmxbeschränkt nur den Java-Heap. Der Code selbst, die JVM, Betriebssystem-DLLs, interne Java-Datenstrukturen und Thread-Stacks benötigen zusätzlichen Speicher. In Ihrem Fall benötigen sie anscheinend mehr als 550 MB RAM. Keine Heap-Einstellung würde die Gesamtmenge unter 256 MB bringen.

Beachten Sie jedoch, dass die Codeteile möglicherweise von Prozessen gemeinsam genutzt werden. Eine DLL, die in Ihrem Prozess 5 MB RAM verwendet, verwendet in einem anderen Prozess im Allgemeinen die gleichen 5 MB RAM.