2011-09-29 23 views
5

¿Cuál es la diferencia exacta entre Runtime.maxMemory() y Runtime.totalMemory()? El javadoc es bastante vago sobre esto (para mí).Cuándo utilizar Runtime.maxMemory() y totalMemory()

¿Cuáles son los casos de uso típicos para estos dos métodos, es decir, cuándo sería inapropiado utilizar el otro respectivo?

Respuesta

6

totalMemory() devuelve la cantidad de memoria utilizada actualmente, mientras que maxMemory() indica cuánto puede asignar la JVM en total.

Nota: que a partir de esto se deduce: totalMemory() <= maxMemory(), y también se puede obtener 'la cantidad de memoria que queda' por maxMemory() - totalMemory()

Una caso de uso de esto es para diagnosticar la cantidad de memoria que utiliza su programa, y ​​usted Usaremos totalMemory() para eso.
Nota: ambos se refieren solo a la memoria de pila, y no a la memoria de pila.

+0

"TotalMemory() devuelve la cantidad de memoria utilizada actualmente" USED ?! te refieres a Asignado? –

5

La memoria total es la memoria que está asignada actualmente a la JVM. Varía con el tiempo La memoria máxima es la memoria máxima que la JVM podría alcanzar. Es el límite superior de la memoria total.

3

MaxMemory() es el valor establecido por el parámetro Xmx

+0

cómo obtener el parámetro Xms después de que el programa comenzó a ejecutarse? –

0

totalMemory() que representan tamaño de la pila actual de JVM que es combinación de memoria utilizada actualmente ocupado por objetos y memoria libre disponible para los nuevos objects.As por valor javadoc devuelto por totalMemory() puede variar con el tiempo dependiendo del entorno. JVM totalMemory es también igual al tamaño inicial del montón de JVM

espacio de almacenamiento dinámico máximo no va a cambiar con el JVM cycle.Jvm vida siempre tratando de ampliar el tamaño de totalMemory() de acuerdo con ninguna de nuevo objeto creado, pero no más allá de maxMemory() size unles obtendremos java.lang.OutOfMemoryError.

+0

"puede variar con el tiempo" dice más o menos que "es igual al tamaño de pila inicial" es poco probable que sea confiable en el caso general. – Gus

Cuestiones relacionadas