it-swarm.com.de

Erhöhen Sie die Größe des Heapspeichers in Java

Ich arbeite an einem Windows 2003-Server (64-Bit) mit 8 GB RAM. Wie kann ich den maximalen Heapspeicher erhöhen? Ich verwende das Flag -Xmx1500m, um die Größe des Heapspeichers auf 1500 MB zu erhöhen. Kann ich den Heapspeicher auf 75% des physischen Speichers (6 GB Heap) erhöhen?

257
Sunil

Auf einem 32-Bit-System können bis zu 4 GB erreicht werden. Wenn Sie auf einem 64-Bit-System arbeiten, können Sie höher gehen. Wenn Sie auf einem 32-Bit-System nach 5 g fragen, müssen Sie sich keine Sorgen machen. Java beschwert sich über einen ungültigen Wert und beendet das Programm.

Verwenden Sie, wie andere bereits geschrieben haben, die Befehlszeilen-Flags, z.

Java -Xmx6g myprogram

Sie können eine vollständige Liste (oder zumindest eine fast vollständige Liste) erhalten, indem Sie Java -X eingeben.

308
Steve B.

Es ist möglich, die von der JVM zugewiesene Größe des Heapspeichers mithilfe von Befehlszeilenoptionen zu erhöhen. Hier haben wir drei Optionen

-Xms<size>        set initial Java heap size
-Xmx<size>        set maximum Java heap size
-Xss<size>        set Java thread stack size

Java -Xms16m -Xmx64m ClassName

In der obigen Zeile können wir den minimalen Heap auf 16 MB und den maximalen Heap auf 64 MB einstellen

151
Karthik Reddy

Auf einer 32-Bit-JVM beträgt die theoretisch festgelegte Größe des größten Heapspeichers 4 GB. Um einen größeren Heap zu verwenden, müssen Sie eine 64-Bit-JVM verwenden. Versuche Folgendes:

Java -Xmx6144M -d64

Das -d64-Flag ist wichtig, da dies die JVM anweist, im 64-Bit-Modus ausgeführt zu werden.

27
Kevin

Es ist möglich, die von der JVM in Eclipse zugewiesene Heap-Größe direkt in Eclipse IDE goto 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)

11
Karthik Reddy

Java -d64 -Xms512m -Xmx4g HelloWorld

wobei -d64: 64-Bit-JVM aktivieren wird -Xms512m: Die anfängliche Heap-Größe wird auf 512 MB festgelegt -Xmx4g: Die maximale Heap-Größe wird auf 4 GB festgelegt (hier Java lautet der Dateiname: HelloWorld.Java)

10
Sumit Deshinge

Kann ich den Heapspeicher auf 75% des physischen Speichers (6 GB Heap) erhöhen?.

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 noch ausgeführt wird. Insbesondere wenn der "Arbeitssatz" der Anwendungen und Dienste, die derzeit ausgeführt werden, den verfügbaren physischen Speicher erheblich überschreitet, besteht die Gefahr, dass Ihr System "überlastet" wird und viel Zeit mit dem Verschieben von Seiten des virtuellen Speichers auf und von der Festplatte verbracht wird. Der Nettoeffekt ist, dass das System schrecklich langsam wird.

7
Stephen C

Sie können die Größe des Heapspeichers erhöhen, indem Sie die JVM-Parameter - Xms und - Xmx wie folgt übergeben:

Für Jar-Dateien:

Java -jar -Xms4096M -Xmx6144M jarFilePath.jar

Für Java Dateien:

 Java -Xms4096M -Xmx6144M ClassName

Die obigen Parameter erhöhen InitialHeapSize (-Xms) auf 4 GB (4096 MB) und MaxHeapSize (-Xmx) auf 6 GB (6144 MB).

Die Heap-Größe junge Generation bleibt jedoch gleich, und die zusätzliche Heap-Größe wird zur Heap-Größe alte Generation hinzugefügt. Um die Größe von Young Gen Heap und Old Gen Heap auszugleichen, verwenden Sie - XX: NewRatio = 1 -XX: -UseAdaptiveSizePolicy params.

Java -jar -Xms4096M -Xmx6144M -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy pathToJarFile.jar

- XX: NewRatio = Old Gen Heap Size: Young Gen HeapSize (Sie können mit diesem Verhältnis spielen, um das gewünschte Verhältnis zu erhalten).

4
Sahil Chhabra

Dies funktioniert nur mit der 64-Bit-Version von Java. Gehen Sie zur Systemsteuerung und klicken Sie auf das Symbol Java. Klicken Sie im kleinen Fenster der Java - Systemsteuerung auf die Menüleiste Java und dann auf die Schaltfläche view.

Wenn Sie zwei Java Plattformen haben, deaktivieren Sie die vorherige Java-Version, klicken Sie auf Laufzeitparameter Textfeld und schreiben Sie -Xmx1024m oder weniger als RAM Größe. Erhöhen Sie die Größe des Heapspeichers nicht auf RAM, sonst stürzt Ihr System ab.

2
madhu

Verwenden Sie den folgenden Befehl, um die Größe des Heapspeichers auf 6 GB zu ändern

export Java_OPTS="-Xms6144m -Xmx6144m -XX:NewSize=256m -XX:MaxNewSize=356m -XX:PermSize=256m -XX:MaxPermSize=356m"
2
user7389761

Mehrere Personen wiesen mit den jvm-Optionen -Xms und -Xms auf die spezifischen Antworten für die Größe des Heapspeichers hin. Ich möchte darauf hinweisen, dass dies nicht die einzige Art von Speicheroptionen für den 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 -Xss8m hinzufügen.

Für dieses Problem wären die jvm-Optionen von -Xms2g -Xmx6g -Xss8m eine Lösung.

Ich teile diese Informationen, da meine Google-Suche nach Möglichkeiten zur Erhöhung des JVM-Speichers mich zu dieser Lösung geführt hat und die Lösungen bei hoher Speicherzuweisung nicht funktionierten. Nachdem ich herausgefunden hatte, wofür die spezifischen Einstellungen waren, konnte ich googeln, wie man die Stapelgröße erhöht, und den fehlenden Parameter finden. :) Hoffe, das spart anderen Zeit, da es mir eine Menge Zeit ersparen würde. :)

1
James Oravec

Ja. Sie können.

Sie können den Heapspeicher auf 75% des physischen Speichers (6 GB Heap) oder höher erhöhen.

Da Sie 64-Bit verwenden, können Sie die Größe Ihres Heapspeichers auf die gewünschte Größe erhöhen. Falls Sie 32-Bit verwenden, ist die Größe auf 4 GB beschränkt.

$ Java -Xms512m -Xmx6144m JavaApplication

Legt die anfängliche Heap-Größe auf 512 MB und die maximale Heap-Größe auf 6 GB fest.

Ich hoffe es hilft.. :)

0
Sarat Chandra