2011-01-25 9 views
6

¿Hay alguna manera de establecer el tamaño máximo de almacenamiento dinámico Java programáticamente en lugar de hacerlo como un argumento vm?estableciendo programáticamente max java tamaño de pila

Algo así como:

System.getProperties().put("<heap variable>", "1000m"); 
+2

posible duplicado de [Cómo aumentar el tamaño del almacenamiento dinámico de Java mediante programación] (http://stackoverflow.com/questions/2073869/how-to-increase-java-heap-size-programmatically) – miku

Respuesta

7
No

con cualquier JVM Hotspot. Los parámetros del montón JVM solo se pueden especificar en la línea de comando y luego se fijan durante el tiempo de vida de la JVM.

Con las implementaciones de Hotspot Java, la única forma de "cambiar" el tamaño de almacenamiento dinámico de una aplicación es reiniciarlo en una nueva JVM con diferentes parámetros de línea de comando.

(Recuerdo vagamente que las JVM de algunos otros vendedores hacer permitir que algunos parámetros del montón a ser cambiados en una JVM corriendo. Tal vez alguien puede aclarar.)

0

Es necesario comprender la diferencia entre el espacio JVM y el entorno en el que se ejecuta. El parámetro que ha mencionado (y cualquier otro parámetro -X o -XX) son entornos configurados proporcionados por el entorno que ejecuta la JVM.

En una máquina con Windows XP, el sistema operativo Windows es EL iniciador de la JVM. Por lo tanto, JVM no debería poder cambiar un parámetro proporcionado por el sistema operativo. Es lógico

@Stephen C, puede que tenga razón acerca de alguna implementación de máquina virtual que brinde esta característica, pero no estoy seguro.

Cuestiones relacionadas