[java] ¿Cómo establecer el uso máximo de memoria para JVM?



1 Answers

No debería tener que preocuparse por la pila que pierde la memoria (es muy poco común). El único momento en que puede hacer que la pila se salga de control es con recursividad infinita (o muy profunda).

Esto es solo el montón. Lo siento, no leí tu pregunta completamente al principio.

Necesita ejecutar la JVM con el siguiente argumento de línea de comando.

-Xmx<ammount of memory>

Ejemplo:

-Xmx1024m

Eso permitirá un máximo de 1 GB de memoria para la JVM.

Question

Quiero limitar la memoria máxima utilizada por la JVM. Tenga en cuenta que esto no es solo el montón, quiero limitar la memoria total utilizada por este proceso.




La respuesta anterior es correcta, no se puede controlar con gracia la cantidad de memoria nativa que asigna un proceso de Java. Depende de lo que está haciendo tu aplicación.

Dicho esto, dependiendo de la plataforma, puede utilizar algún mecanismo, ulimit por ejemplo, para limitar el tamaño de un Java o cualquier otro proceso.

Simplemente no espere que falle con elegancia si alcanza ese límite. Las fallas de asignación de memoria nativa son mucho más difíciles de manejar que las fallas de asignación en el montón de Java. Existe una posibilidad bastante buena de que la aplicación se cuelgue, pero depende de cuán crítico sea para el sistema mantener el tamaño del proceso bajo que podría ser adecuado para usted.






Related