Hapgrootte in Java vergroten

Ik werk op een Windows 2003-server (64-bits) met 8 GB RAM. Hoe kan ik het heapgeheugen maximaal vergroten? Ik gebruik de vlag -Xmx1500mom de heapgrootte te vergroten tot 1500 Mb. Kan ik het heapgeheugen vergroten tot 75% van het fysieke geheugen (6 GB Heap)?


Antwoord 1, autoriteit 100%

Je kunt dit verhogen tot 2GBop een 32bit systeem. Als je een 64-bits systeem hebt, kun je hoger gaan. U hoeft zich geen zorgen te maken als u een verkeerde keuze heeft gemaakt, als u 5g op een 32-bits systeem vraagt, zal java klagen over een ongeldige waarde en stoppen.

Zoals anderen hebben gepost, gebruik de cmd-line-vlaggen – bijvoorbeeld

java -Xmx6g myprogram

Je kunt een volledige lijst krijgen (of toch een bijna volledige lijst) door java -X te typen.


Antwoord 2, autoriteit 49%

Het is mogelijk om de heapgrootte die door de JVM is toegewezen te vergroten met behulp van opdrachtregelopties
Hier hebben we 3 opties

-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 de bovenstaande regel kunnen we de minimale heap instellen op 16mb en de maximale heap 64mb


Antwoord 3, autoriteit 9%

Op een 32-bits JVM is de grootste heapgrootte die u theoretisch kunt instellen 4 GB. Om een grotere heapgrootte te gebruiken, moet u een 64-bits JVM gebruiken. Probeer het volgende:

java -Xmx6144M -d64

De vlag -d64 is belangrijk omdat dit de JVM vertelt om in 64-bits modus te draaien.


Antwoord 4, autoriteit 3%

Het is mogelijk om de heapgrootte die door de JVM in eclipse is toegewezen rechtstreeks te vergroten
In eclipse IDE ga naar

Uitvoeren—->Configuraties uitvoeren—->Argumenten

Voer -Xmx1g in (Dit wordt gebruikt om de maximale grootte in te stellen, zoals Xmx256m of Xmx1g…… m–>mb g—>gb)


Antwoord 5, autoriteit 3%

java -d64 -Xms512m -Xmx4g HelloWorld

waar,
-d64: zal 64-bits JVM inschakelen
-Xms512m: Stelt de initiële heapgrootte in op 512 MB
-Xmx4g: zal de maximale heapgrootte instellen op 4 GB
(hier is de naam van het java-bestand: HelloWorld.java)


Antwoord 6, autoriteit 3%

U kunt de heapgrootte vergroten door de JVM-parameters -Xmsen -Xmxdoor te geven, zoals hieronder:

Voor Jar-bestanden:

java -jar -Xms4096M -Xmx6144M jarFilePath.jar

Voor Java-bestanden:

java -Xms4096M -Xmx6144M ClassName

De bovenstaande parameters verhogen de InitialHeapSize (-Xms)tot 4GB (4096 MB) en MaxHeapSize(-Xmx)tot 6GB (6144 MB).

Maar de Young GenerationHeap Size blijft hetzelfde en de extra HeapSize wordt toegevoegd aan de Oude GeneratieHeap Size. Gebruik de params -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicyom de grootte van Young Gen Heap en Old Gen Heap gelijk te maken.

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

-XX:NewRatio = Heapgrootte oude generatie : Heapgrootte jonge generatie(Je kunt met deze verhouding spelen om de gewenste verhouding te krijgen).


Antwoord 7, autoriteit 2%

Kan ik het heapgeheugen verhogen tot 75%
fysiek geheugen (6GB Heap).

Ja dat kan. U kunt zelfs uitbreiden tot meer dan de hoeveelheid fysiek geheugen, als u dat wilt.

Of het een goed idee is om dit te doen, hangt af van hoeveel er nog meer op uw systeem draait. In het bijzonder, als de “werkset” van de applicaties en services die momenteel actief zijn aanzienlijk groter is dan het beschikbare fysieke geheugen, is uw systeem vatbaar voor “thrash”, waarbij u veel tijd besteedt aan het verplaatsen van virtuele geheugenpagina’s van en naar schijf. Het netto-effect is dat het systeem verschrikkelijk traag wordt.


Antwoord 8, autoriteit 2%

Gebruik onderstaande opdracht om de heapgrootte te wijzigen in 6 GB

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

Antwoord 9

Verschillende mensen wezen op de specifieke antwoorden voor heap size met de jvm-opties van -Xmsen -Xms. Ik wil erop wijzen dat dit niet het enige type geheugenopties is voor de jvm. Met name als u stack-over-flows krijgt, wilt u de stapel vergroten door een extra optie toe te voegen, zoals -Xss8m.

Voor dit probleem zouden de jvm-opties van bijvoorbeeld -Xms2g -Xmx6g -Xss8meen oplossing zijn.

Ik deel deze informatie omdat mijn Google-zoekopdrachten over het vergroten van het jvm-geheugen me naar deze oplossing brachten, en de oplossingen werkten niet met grote hoeveelheden geheugentoewijzing. Toen ik er eenmaal achter was waar de specifieke instellingen voor waren, kon ik googlen hoe ik de stapelgrootte kon vergroten en de ontbrekende parameter vond. 🙂 Ik hoop dat dit anderen tijd bespaart, zoals het mij een hoop tijd zou hebben bespaard. 🙂


Antwoord 10

Dit werkt alleen met de 64-bits versie van Java. Ga naar het Configuratiescherm en klik op het Java-pictogram. Klik in het kleine venster van het Java-configuratiescherm op de Java-menubalk en klik vervolgens op de knop view.

Als u twee Java-platforms heeft, schakelt u de vorige versie van Java uit, klikt u op het tekstveld Runtime-parametersen schrijft u -Xmx1024mof kleiner dan de RAM-grootte. Vergroot de heapgrootte niet gelijk aan RAM, anders crasht je systeem.


Antwoord 11

Ja. Dat kan.

U kunt uw heap-geheugen vergroten tot 75% van het fysieke geheugen (6 GB Heap) of hoger.

Omdat u 64bit gebruikt, kunt u uw heap vergroten tot de gewenste hoeveelheid. Als u 32bit gebruikt, is deze beperkt tot 4 GB.

$ java -Xms512m -Xmx6144m JavaApplication

Hiermee stelt u de initiële heapgrootte in op 512 MB en de maximale heapgrootte op 6 GB.

Hoop dat het helpt.. 🙂


Antwoord 12

Ik heb een probleem met het uitvoeren van de py-bestanden in mijn java-code met behulp van eclipse/STS, waarbij ik PyException krijg vanwege onvoldoende jvm-heapgeheugen. Ik heb de onderstaande wijzigingen aangebracht en ik kan dit probleem oplossen. Hieronder staat mijn systeemconfiguratie.

En dit zijn de wijzigingen die ik heb aangebracht in mijn werkruimte en voila, het werkt nu perfect.


Other episodes