Domanda

Sto lavorando su un server Windows 2003 (64-bit) con 8 GB di RAM. Come posso aumentare al massimo memoria heap? Sto usando la bandiera -Xmx1500m di aumentare la dimensione heap a 1500 Mb. Posso aumentare la memoria heap al 75% di memoria fisica (6 GB Mucchio)?

È stato utile?

Soluzione

È possibile aumentare a 4 GB su un sistema a 32 bit. Se siete su un sistema a 64 bit si può andare più in alto. Non c'è bisogno di preoccuparsi se hai scelto correttamente, se chiedete 5g su un sistema di Java a 32 bit si lamenterà un valore non valido e uscire.

Come altri hanno scritto, utilizzare i flag cmd-linea - per esempio

java -Xmx6g myprogram

È possibile ottenere un elenco completo (o un elenco quasi piena, comunque) digitando java -X.

Altri suggerimenti

E 'possibile aumentare la dimensione heap allocata dalla JVM utilizzando le opzioni di riga di comando Qui abbiamo 3 opzioni

-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

Nella riga sopra possiamo impostare mucchio minima a 16 MB e massimo 64mb mucchio

In una JVM a 32 bit, la dimensione heap più grande si può teoricamente impostare è di 4 GB. Per utilizzare una dimensione heap più grande, è necessario utilizzare una JVM a 64 bit. Provare quanto segue:

  

java -Xmx6144M -d64

La bandiera -d64 è importante in quanto si dice la JVM per l'esecuzione in modalità a 64 bit.

E 'possibile aumentare la dimensione heap allocata dalla JVM in Eclipse direttamente In Eclipse IDE goto

Esegui ----> Run Configurazioni ----> Argomenti

Inserisci -Xmx1g (E 'utilizzato per impostare la dimensione massima come Xmx256m o Xmx1g ...... m -> mb g ---> GB)

java -d64 -Xms512m -Xmx4g HelloWorld

dove, -d64: Will abilitare JVM a 64 bit -Xms512m: Will impostare la dimensione heap iniziale come 512 MB -Xmx4g: Will impostare la dimensione heap massima di 4 GB (Qui il nome del file java è: HelloWorld.java)

  

È possibile aumentare la memoria heap al 75%   di memoria fisica (6GB Heap).

Sì, è possibile. In realtà, si può aumentare fino a più che la quantità di memoria fisica, se si vuole.

Che si tratti di una buona idea per fare questo dipende da quanto il resto è in esecuzione sul sistema. In particolare, se il "working set" delle applicazioni e dei servizi attualmente in esecuzione in modo significativo supera la memoria fisica disponibile, il sistema rischia di "thrash", spendendo un sacco di tempo in movimento pagine di memoria virtuale da e su disco. L'effetto netto è che il sistema diventa terribilmente lento.

È possibile aumentare la dimensione heap passando parametri JVM -Xms e -Xmx come qui di seguito:

Per file jar:

java -jar -Xms4096M -Xmx6144M jarFilePath.jar

Per i file Java:

 java -Xms4096M -Xmx6144M ClassName

I suddetti parametri aumentano il InitialHeapSize (-Xms) a 4 GB (4096 MB) e MaxHeapSize (-Xmx) a 6 GB (6144 MB).

Ma, la Young Generation Dimensione heap rimarrà lo stesso e la HEAPSIZE supplementare sarà aggiunto alla vecchia generazione Dimensione heap. Per pareggiare la dimensione del giovane Gen Heap e Old Gen Heap , utilizzare XX: NewRatio = 1 -XX:. -UseAdaptiveSizePolicy params

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

XX: NewRatio = Old Gen Heap Size:. Giovane Gen HEAPSIZE (Si può giocare con questo rapporto per ottenere il vostro rapporto desiderato)

per modificare la dimensione heap a 6 GB Si prega di utilizzare il comando

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

Questo funziona solo con la versione a 64 bit di Java. Vai al Pannello di controllo e fare clic sull'icona Java. Sulla piccola finestra del Pannello di controllo Java, fare clic sulla barra dei menu Java e quindi fare clic sul pulsante view.

Se si dispone di due piattaforme Java, disabilitare la versione precedente di Java, quindi fare clic su parametri di runtime campo di testo e scrivere -Xmx1024m o meno la dimensione della RAM. Non aumentare le dimensioni heap uguale alla RAM altrimenti andrà in crash il sistema.

Diverse persone hanno sottolineato le risposte specifiche per dimensione heap con le opzioni JVM di -Xms e -Xms. Voglio sottolineare che questo non è l'unico tipo di opzioni di memoria per la JVM. In particolare se siete ottenere pila dei flussi, quindi ti consigliamo di aumentare la dimensione dello stack con l'aggiunta di un'opzione aggiuntiva come -Xss8m.

Per questo problema, le opzioni JVM di qualcosa come -Xms2g -Xmx6g -Xss8m sarebbe una soluzione.

sto condividendo queste informazioni come la mia ricerche di Google su come aumentare la memoria JVM mi ha portato a questa soluzione, e le soluzioni non ha funzionato con elevate quantità di allocazione di memoria. Una volta ho capito che cosa le impostazioni specifiche erano per, ero in grado di google come aumentare la dimensione dello stack e ha trovato il parametro mancante. :) Spero che questo consente di risparmiare tempo gli altri, come sarebbe Inviate risparmiato un sacco di tempo. :)

Sì. You Can.

È possibile espandere la memoria heap al 75% di memoria fisica (6 GB Mucchio) o superiore.

Poiché si utilizza 64bit è possibile aumentare la dimensione heap alla quantità desiderata. Nel caso in cui si utilizza 32 bit è limitata a 4GB.

$ java -Xms512m -Xmx6144m JavaApplication

si Imposta con dimensione heap iniziale a 512MB e massima heapsize a 6 GB.

Speranza che aiuta ..:)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top