Me gustaría restringir el tamaño máximo de almacenamiento dinámico para una aplicación Java, pero parece que no funciona . Estoy ejecutando la aplicación desde un paquete jar a través de bat en Windows. Contenido del bate:Cómo restringir el uso de memoria de la aplicación Java empaquetada en un contenedor (-Xmx no parece funcionar) en Windows
@Echo off
set CLASSPATH=.
java -Xmx32m -classpath %CLASSPATH% -jar MyApplication.jar
Esto debería restringir el tamaño máximo de almacenamiento dinámico de 32 megabytes. Sin embargo, cuando hago cosas que consumen memoria con la aplicación, el Administrador de tareas de Windows muestra que el consumo de memoria va al menos a unos 70 megabytes ... Incluso probé con -Xmx2m pero eso no hizo ninguna diferencia.
Por lo tanto, no estoy totalmente seguro de cuál es el problema. Por supuesto, hay una pila contenida en el uso de la memoria, pero la memoria utilizada por el programa debe ser mayormente el espacio en montón ...
La versión de Java parece ser 1.6.0_14.
Para aquellos interesados en lo que estoy buscando, estoy tratando de ver cómo se comportaría mi aplicación con ciertas funciones cuando se agote el espacio de almacenamiento dinámico.
EDITAR: Hmm ... Me sorprendió que el uso del montón se limitara a los 32M en realidad cuando se monitorea con JConsole. Tengo que conseguir más memoria utilizada ...
Gracias por las ideas, Touko
Sí, he comprobado la consola y el límite del montón fue hecho obedecía, la diferencia entre el espacio del montón y otra el uso de memoria era diferente de lo que esperaba. Con 20M logré obtener .OutOfMemoryError: Java montón de espacio – Touko