Ich arbeite an einem Windows 2003-Server (64-Bit) mit 8 GB RAM. Wie kann ich den maximalen Heapspeicher erhöhen? Ich benutze das -Xmx1500m
Flag, um die Heap-Größe auf 1500 Mb zu erhöhen. Kann ich den Heapspeicher auf 75% des physischen Speichers (6 GB Heap) erhöhen?
java
heap-memory
Sunil
quelle
quelle
-Xmx6g
? Hat das nicht funktioniert? Was hast du beobachtet?Antworten:
Sie können auf einem 32-Bit-System auf 4 GB erhöhen. Wenn Sie auf einem 64-Bit-System arbeiten, können Sie höher gehen. Kein Grund zur Sorge, wenn Sie falsch gewählt haben. Wenn Sie auf einem 32-Bit-System nach 5 g fragen, beschwert sich Java über einen ungültigen Wert und beendet das Programm.
Verwenden Sie, wie andere gepostet haben, die cmd-Zeilen-Flags - z
Sie können eine vollständige Liste (oder zumindest eine fast vollständige Liste) erhalten, indem Sie java -X eingeben.
quelle
Es ist möglich, die von der JVM zugewiesene Heap-Größe mithilfe von Befehlszeilenoptionen zu erhöhen. Hier haben wir 3 Optionen
In der obigen Zeile können wir den minimalen Heap auf 16 MB und den maximalen Heap auf 64 MB festlegen
quelle
Auf einer 32-Bit-JVM beträgt die größte Heap-Größe, die Sie theoretisch festlegen können, 4 GB. Um einen größeren Heap zu verwenden, müssen Sie eine 64-Bit-JVM verwenden. Versuche Folgendes:
Das Flag -d64 ist wichtig, da dies die JVM anweist, im 64-Bit-Modus ausgeführt zu werden.
quelle
Es ist möglich, die von der JVM in Eclipse zugewiesene Heap-Größe direkt in Eclipse IDE zu erhöhen
Ausführen ----> Konfigurationen ausführen ----> Argumente
Geben Sie -Xmx1g ein (Hiermit wird die maximale Größe wie Xmx256m oder Xmx1g festgelegt ...... m -> mb g ---> gb)
quelle
Java -d64 -Xms512m -Xmx4g HelloWorld
Dabei gilt: -d64: Aktiviert die 64-Bit-JVM -Xms512m: Legt die anfängliche Heap-Größe auf 512 MB fest. -Xmx4g: Legt die maximale Heap-Größe auf 4 GB fest (hier lautet der Name der Java-Datei: HelloWorld.java).
quelle
Sie können die Heap-Größe erhöhen, indem Sie die JVM-Parameter -Xms und -Xmx wie folgt übergeben :
Für Jar-Dateien:
Für Java-Dateien:
Die obigen Parameter erhöhen InitialHeapSize (-Xms) auf 4 GB (4096 MB) und MaxHeapSize (-Xmx) auf 6 GB (6144 MB).
Die Heap-Größe der jungen Generation bleibt jedoch gleich, und die zusätzliche HeapSize wird der Heap-Größe der alten Generation hinzugefügt . Um die Größe der jungen Generation Heap und Alt Gen Heap entzerren , verwenden -XX: NewRatio = 1 -XX: -UseAdaptiveSizePolicy params.
-XX: NewRatio = Heap-Größe der alten Generation: HeapSize der jungen Generation (Sie können mit diesem Verhältnis spielen, um das gewünschte Verhältnis zu erhalten).
quelle
Ja, du kannst. In der Tat können Sie auf mehr als die Größe des physischen Speichers erhöhen, wenn Sie möchten.
Ob dies sinnvoll ist, hängt davon ab, wie viel auf Ihrem System ausgeführt wird. Insbesondere wenn der "Arbeitssatz" der Anwendungen und Dienste, die derzeit ausgeführt werden, den verfügbaren physischen Speicher erheblich überschreitet, kann Ihr System "verprügeln" und viel Zeit damit verbringen, virtuelle Speicherseiten von und zur Festplatte zu verschieben. Der Nettoeffekt ist, dass das System schrecklich langsam wird.
quelle
Verwenden Sie den folgenden Befehl, um die Heap-Größe auf 6 GB zu ändern
quelle
Mehrere Personen wiesen auf die spezifischen Antworten für die Heap-Größe mit den JVM-Optionen von
-Xms
und hin-Xms
. Ich möchte darauf hinweisen, dass dies nicht die einzige Art von Speicheroptionen für das JVM ist. Insbesondere wenn Sie Stapelüberläufe erhalten, möchten Sie die Größe des Stapels erhöhen, indem Sie eine zusätzliche Option wie hinzufügen-Xss8m
.Für dieses Problem
-Xms2g -Xmx6g -Xss8m
wären die JVM-Optionen von so etwas eine Lösung.Ich teile diese Informationen, während meine Google-Suche nach einer Erhöhung des JVM-Speichers mich zu dieser Lösung führte und die Lösungen mit hoher Speicherzuweisung nicht funktionierten. Nachdem ich herausgefunden hatte, wozu die spezifischen Einstellungen dienen, konnte ich googeln, wie die Stapelgröße erhöht werden kann, und den fehlenden Parameter finden. :) Hoffe das spart anderen Zeit, da es mir eine Menge Zeit gespart hätte. :) :)
quelle
Dies funktioniert nur mit der 64-Bit-Version von Java. Gehen Sie zur Systemsteuerung und klicken Sie auf das Java-Symbol. Klicken Sie in dem kleinen Fenster der Java-Systemsteuerung auf die Java-Menüleiste und dann auf die
view
Schaltfläche.Wenn Sie über zwei Java-Plattformen verfügen, deaktivieren Sie die vorherige Java-Version, klicken Sie auf das Textfeld Laufzeitparameter und schreiben Sie
-Xmx1024m
oder weniger als die RAM-Größe. Erhöhen Sie die Heap-Größe nicht gleich RAM, da Ihr System sonst abstürzt.quelle
Ja. Du kannst.
Sie können Ihren Heap-Speicher auf 75% des physischen Speichers (6 GB Heap) oder höher erhöhen.
Da Sie 64-Bit verwenden, können Sie Ihre Heap-Größe auf die gewünschte Menge erhöhen. Wenn Sie 32 Bit verwenden, ist es auf 4 GB beschränkt.
Legt fest, dass die anfängliche Heap-Größe 512 MB und die maximale Heap-Größe 6 GB beträgt.
Ich hoffe es hilft.. :)
quelle
Ich habe Probleme beim Ausführen der Py-Dateien in meinem Java-Code mit Eclipse / STS und erhalte PyException aufgrund unzureichenden JVM-Heap-Speichers. Ich habe die unten genannten Änderungen vorgenommen und kann dieses Problem beheben. Unten ist meine Systemkonfiguration.
Und dies sind die Änderungen, die ich in meinem Arbeitsbereich vorgenommen habe, und voila, es läuft jetzt perfekt.
quelle