2013-04-17 10 views
8

Gentilmente dimmi lo scopo di queste opzioni. MinHeapFreeRatio dice: "La percentuale minima specificata di spazio sarà garantita per essere libera nella memoria heap dopo un GC" e MaxHeapFreeRatio dice "non più della percentuale specificata di spazio sarà libera nella memoria heap dopo un GC "[se c'è una memoria libera in eccesso rispetto alla percentuale specificata, tale memoria verrà restituita al sistema operativo]qual è lo scopo di -XX: MinHeapFreeRatio e -XX: MaxHeapFreeRatio

Quando ho provato queste opzioni con 10 come valore per entrambi, anche dove c'è più di 80 percentuale di memoria heap libera, non è stato rilasciato al sistema operativo.

Particolari: Java HotSpot (TM) 64-bit di server VM (1.5.0_15-B04, modalità mista) ParallelGC (altrimenti noto come collettore rendimento che è il collettore di difetto in classe di server VM) ho specificato -Xms50M e -Xmx1000M come argomenti jvm OS: windows 7 professional (8 GB di memoria 64 bit OS)

Nota: ho appena provato anche con SerialGC, quelle opzioni min e max heap free ratio sono state ignorate.

+0

Immagino che stia impostando un intervallo di percentuale, giusto? non dovrebbe essere impostato su 10, ma impostare valori come: 'MinHeapFreeRatio = 10' e' MaxHeapFreeRatio = 90', spero di averlo capito correttamente. –

risposta

2

Java rilascia molto raramente la memoria sul sistema operativo. In generale, le applicazioni utilizzano più memoria nel tempo piuttosto che meno. Sei sicuro che la memoria sia così limitata da averne bisogno? Sei sicuro di controllare la memoria residente non la dimensione della memoria virtuale che sarà di circa 1,2 GB nel tuo caso tutto il tempo.

+1

sì peter ho controllato l'utilizzo della memoria usando VisualVM. E penso che ParallelGC ignorerà queste opzioni, ridimensiona dinamicamente le generazioni giovani e meno giovani sulla base degli obiettivi "pausa" e "velocità effettiva". https://blogs.oracle.com/jonthecollector/entry/it_s_not_magic –

Problemi correlati