studio programacion móviles libros desarrollo desarrollar curso con aprende aplicaciones java performance memory-management jvm

java - móviles - manual de programacion android pdf



Aplicación de Java que usa mucha memoria. Utilice-Xmx? (3)

Tengo una aplicación java que usa aproximadamente 15G en una máquina con 16G. No sé si debo establecer el tamaño máximo del montón.

Si se configura, ¿el JVM comerá todo el ariete hasta el límite y luego comenzará la recolección de basura y parará todo mientras agita hasta 15G de objetos del montón?

De lo contrario, el JVM no afectará el rendimiento al no utilizar todo el ariete disponible en la máquina.

Mi vm específica es: Java HotSpot (TM) VM de servidor de 64 bits (compilación 1.6.0_03-b05, modo mixto).

Gracias


En Java 6, el tamaño de pila máximo predeterminado está determinado por la cantidad de memoria del sistema presente.

De acuerdo con la página Ergonomía del recolector de basura , el tamaño máximo de almacenamiento dinámico es:

Menor de 1/4 de la memoria física o 1GB. Antes de J2SE 5.0, el tamaño de pila máximo predeterminado era de 64 MB.

Al usar el -Xmx se puede usar para cambiar el tamaño máximo del montón. Consulte la documentación del iniciador de aplicaciones Java para obtener detalles de uso.


Si no establece un tamaño máximo de -Xmx dinámico (con -Xmx ), ¿no es el máximo predeterminado solo de 64 MB?

Entonces, ¿no fallará su aplicación con OutOfMemoryError s si no la configura? Estoy confundido en esta pregunta. ¿Cómo puede funcionar su aplicación sin este interruptor?


-Xmx15G establecerá el tamaño máximo de -Xmx15G dinámico en 15 gigas. Java solo asignará lo que necesita mientras se ejecuta. Si no lo configura, solo utilizará el valor predeterminado. Para obtener información sobre el valor predeterminado, consulte esta publicación .

-Xms15G establece el mínimo de 15 gigas. Esto obliga a Java a asignar 15 gigas de espacio en el montón antes de que comience a ejecutarse, ya sea que lo necesite o no.

Por lo general, puede establecerlos en los valores adecuados dependiendo de cómo sintonice la JVM.