2011-01-11 16 views
10



Cuando corro experto-embarcadero-plugin, corro siguiente orden:tamaño libre del montón no aumenta en Maven

mvn -DMAVEN_OPTS="-Xmx1024m -Xms512m" -Djetty.port=8080 jetty:run 

pero cuando trato de salida de tamaño de almacenamiento dinámico libre con

Long heapFreeSize = Runtime.getRuntime().freeMemory(); 

Siempre muestra algo aproximadamente sobre 30000000.
Supongo que es tamaño en bytes, por lo que alrededor de 30 megabytes.
¿Por qué entonces la memoria del montón libre no aumentó?

+0

Está Realizar una OutOfMemoryError? ¿Has intentado con -XX: MaxPermSize = 1024m? freeMemory() muestra el espacio para la asignación futura. Y los objetos permament van al espacio Perm. Tú haces. – ssedano

+0

Si intento -XX: MaxPermSize = 1024 nada cambia ... No puedo probarlo ahora en OutOfMemoryError ... ¿Quiere decir que este espacio (para asignación futura) aumentará según las necesidades de la aplicación? – gennad

+0

maxMemory() muestra la cantidad total de memoria. Pegar maxMemoryoutput por favor – ssedano

Respuesta

16

MAVEN_OPTS es una variable de entorno, que es leído por Maven y se utiliza como los argumentos de línea de comandos para que se bifurcan los procesos Java. Los argumentos de la línea de comando controlan cómo se inicia el ejecutable de Java, p. cosas como configuraciones de memoria.

-D se utiliza para establecer las propiedades del sistema Java, que es algo completamente diferente de los argumentos de la línea de comandos. Las propiedades del sistema Java se pueden leer mediante programación, p. Ej. mediante el uso de System.getProperties().

de Windows:

SET MAVEN_OPTS="-Xmx1024m -Xms512m" 
mvn -Djetty.port=8080 jetty:run 

Linux:

export MAVEN_OPTS="-Xmx1024m -Xms512m" 
mvn -Djetty.port=8080 jetty:run 
+0

Tuve que volver a leer dos veces para '' conseguirlo '' conseguirlo, pero luego resolvió todos mis problemas :-) Gracias. Ahorrado bastante tiempo habría perdido el toquetear cosas. –

2

Creo que "DMAVEN_OPTS =" - Xmx1024m -Xms512m "no es la forma correcta de especificar params de memoria aquí.

Establecer una variable de entorno llamada MAVEN_OPTS con contenido "-Xmx1024m -Xms512m"

+0

¿Quiere decir mvn jetty: ejecutar -Xmx1024m -Xms512m? No se ejecuta mvn embarcadero: ejecuta -DXmx1024m -DXms512m se ejecuta, pero la memoria es la misma que con MAVEN_OPTS – gennad

+0

siento mi culpa la única forma en que creo que es establecer una variable env – lweller

Cuestiones relacionadas