2011-09-29 15 views

risposta

6

Il totalMemory() restituisce la quantità di memoria attualmente utilizzata, mentre lo maxMemory() indica quanto può allocare la JVM in totale.

Nota: che da questo segue: totalMemory() <= maxMemory(), e si può anche ottenere 'la quantità di memoria che resta' di maxMemory() - totalMemory()

Uno caso d'uso per questo è di diagnosticare la quantità di memoria il programma utilizza, e si userò totalMemory() per questo.
Nota: entrambi si riferiscono solo alla memoria heap e non impilano la memoria.

+0

"TotalMemory() restituisce la quantità di memoria attualmente utilizzata" USATA ?! vuoi dire Allocato? –

5

La memoria totale è la memoria attualmente allocata alla JVM. Varia nel tempo. La memoria massima è la memoria massima che la JVM potrebbe mai raggiungere. È il limite superiore della memoria totale.

3

MaxMemory() è il valore impostato dal parametro Xmx

+0

come ottenere il parametro Xms dopo l'avvio del programma? –

0

totalMemory() che rappresentano dimensione heap corrente JVM che è una combinazione di memoria utilizzato attualmente occupata da oggetti e liberare memoria disponibili per le nuove objects.As al valore javadoc restituito da totalMemory() può variare nel tempo a seconda dell'ambiente. JVM totalMemory equivale anche a siglare dimensione heap di JVM

il massimo spazio di heap non è destinato a cambiare nel corso del JVM cycle.Jvm vita cercando sempre di espandere le dimensioni della totalMemory() in base a nessun di nuovo oggetto creato ma non oltre le dimensioni di maxMemory() otterremo java.lang.OutOfMemoryError.

+0

"può variare nel tempo" più o meno dice che "uguale alla dimensione iniziale dell'heap" è improbabile che sia affidabile nel caso generale. – Gus

Problemi correlati