Frage

Ich arbeite auf einem Windows 2003 Server (64-Bit) mit 8 GB RAM. Wie kann ich die Heap-Speicher maximal erhöhen? Ich bin mit der -Xmx1500m Flagge der Heap-Größe auf 1500 Mb zu erhöhen. Kann ich den Heap-Speicher bis zu 75% des physischen Speichers (6 GB Heap) erhöhen?

War es hilfreich?

Lösung

Sie können auf einem 32-Bit-System zu 4 GB erhöhen. Wenn Sie auf einem 64-Bit-System sind, können Sie höher gehen. Kein Grund zur Sorge, wenn Sie nicht richtig gewählt haben, wenn Sie für 5 g auf einem 32-Bit-System Java fragen über einen ungültigen Wert beschweren und beenden.

Wie schon andere geschrieben haben, verwenden Sie die cmd-line flags - z.B.

java -Xmx6g myprogram

Sie können eine vollständige Liste erhalten (oder eine nahezu vollständige Liste jedenfalls) durch Eingabe java -X.

Andere Tipps

Es ist möglich, Heap-Größe von der JVM zugewiesen zu erhöhen, indem Befehlszeilenoptionen Hier haben wir 3 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 wir Mindest Haufen zu 16mb und maximaler Heap 64mb einstellen

Auf einem 32-Bit-JVM, die größte Heapgröße Sie theoretisch festlegen ist 4 GB. Um eine größere Heap-Größe zu verwenden, benötigen Sie eine 64-Bit-JVM zu verwenden. Versuchen Sie Folgendes:

  

java -Xmx6144M -d64

Die -d64 Flagge ist wichtig, da dies die JVM erzählt in 64-Bit-Modus ausgeführt werden.

Es ist möglich, Heap-Größe in Eclipse durch die JVM aufzustocken direkt In Eclipse IDE goto

Ausführen ----> Ausführen Konfigurationen ----> Argumente

Geben Sie -Xmx1g (es verwendet wird, um die maximale Größe wie Xmx256m oder Xmx1g zu setzen ...... m -> mb g ---> gb)

java -d64 -Xms512m -Xmx4g Hello World

Dabei gilt, -d64: Werden 64-Bit-JVM ermöglichen -Xms512m: Wird anfängliche Heapgröße als 512 MB eingestellt -Xmx4g: Will eingestellte maximale Speichergröße als 4 GB (Hier Java-Dateiname ist: HelloWorld.java)

  

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

Ja, Sie können. In der Tat können Sie auf mehr als die Menge des physischen Speichers erhöhen, wenn Sie wollen.

Ob es eine gute Idee, dies zu tun, hängt davon ab, wie viel anderes auf dem System ausgeführt wird. Insbesondere dann, wenn die „Working Set“ der Anwendungen und Services an, die deutlich die verfügbaren physischen Speicher überschreitet ausgeführt werden, ist Ihr System haftet „dreschen“, viel Zeit bewegten virtuellen Speicherseiten und von der Festplatte zu verbringen. Der Nettoeffekt ist, dass das System wird schrecklich langsam.

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

Für Jar Files:

java -jar -Xms4096M -Xmx6144M jarFilePath.jar

Für Java-Dateien:

 java -Xms4096M -Xmx6144M ClassName

Die oben genannten Parameter erhöhen die InitialHeapSize (-Xms) zu 4 GB (4096 MB) und MaxHeapSize (-Xmx) zu 6 GB (6144 MB).

Aber die Young Generation wird Heap-Größe gleich bleiben und die zusätzlichen HeapSize werden die alte Generation Heap Größe hinzugefügt werden. entzerren die Größe der jungen Generation Heap und Alt Gen Haufen , sondern -XX: NewRatio = 1 -XX:. -UseAdaptiveSizePolicy params

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

-XX: NewRatio = Old Gen Heap. Größe: Junge Gen HeapSize (Sie können mit diesem Verhältnis spielen Sie Ihr gewünschtes Verhältnis zu erhalten)

Bitte verwenden Sie folgenden Befehl zu ändern Heap-Größe zu 6 GB

export JAVA_OPTS="-Xms6144m -Xmx6144m -XX:NewSize=256m -XX:MaxNewSize=356m -XX:PermSize=256m -XX:MaxPermSize=356m"

Dies funktioniert nur mit 64-Bit-Version von Java. Gehen Sie in die Systemsteuerung und klicken Sie auf das Java-Symbol. Auf dem kleinen Fenster von Java Control Panel, klicken Sie in der Menüleiste Java und klicken Sie dann auf view-Taste.

Wenn Sie zwei Java-Plattformen haben, deaktivieren Sie die vorherige Version von Java, dann klicken Sie auf Runtime Parameter Textfeld und Schreib -Xmx1024m oder weniger als RAM-Größe. Nicht-Heap-Größe in dem RAM gleich erhöhen ansonsten Ihr System zum Absturz bringen.

Mehrere Personen wiesen auf die spezifischen Antworten für Heap-Größe mit den JVM-Optionen von -Xms und -Xms aus. Ich möchte darauf hinweisen, dass dies nicht die einzige Art von Speicheroptionen für die JVM. Insbesondere, wenn Sie get Stapel überläuft, dann sollten Sie durch das Hinzufügen einer zusätzlichen Option wie -Xss8m die Größe des Stapels erhöhen.

Für dieses Problem ist die JVM-Optionen von so etwas wie -Xms2g -Xmx6g -Xss8m eine Lösung wären.

Ich teile diese Informationen als meine Google-Suchanfrage, wie Jvm Speicher zu erhöhen hat mich zu dieser Lösung, und die Lösungen funktionieren nicht mit hohen Mengen an Speicherzuweisung. Einmal habe ich herausgefunden, was die spezifischen Einstellungen waren für, ich war in der Lage zu Google, wie die Stapelgröße zu erhöhen und die fehlenden param gefunden. :) Hoffe, das spart Zeit andere, als wäre es von mir eine Menge Zeit gespart. :)

Ja. Sie können.

Sie können Ihren Heap-Speicher bis zu 75% des physischen Speichers (6 GB Heap) oder höher erhöhen.

Da Sie verwenden 64bit Sie Ihre Heap-Größe auf die gewünschte Menge erhöhen. Falls Sie verwenden 32bit es ist beschränkt auf 4 GB.

$ java -Xms512m -Xmx6144m JavaApplication

Sets Sie mit anfänglicher Heapgröße auf 512 MB und maximal Heapsize zu 6 GB.

Hoffe, es hilft ..:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top