Aumentar el tamaño del montón en Java


Estoy trabajando en un servidor Windows 2003 (64 bits) con 8 GB de RAM. ¿Cómo puedo aumentar el máximo de memoria del montón? Estoy usando la bandera -Xmx1500m para aumentar el tamaño del montón a 1500 Mb. ¿Puedo aumentar la memoria del montón al 75% de la memoria física (Montón de 6 GB)?

Author: Joachim Sauer, 2009-10-14

11 answers

Puede aumentar a 4 GB en un sistema de 32 bits. Si estás en un sistema de 64 bits puedes ir más alto. No hay necesidad de preocuparse si ha elegido incorrectamente, si usted pide 5g en un sistema de 32 bits java se quejará de un valor no válido y salir.

Como otros han publicado, use las banderas de la línea cmd, por ejemplo,

java -Xmx6g myprogram

Puede obtener una lista completa (o una lista casi completa, de todos modos) escribiendo java-X.

 284
Author: Steve B.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-10-14 12:48:31

Es posible aumentar el tamaño del montón asignado por la JVM mediante el uso de opciones de línea de comandos Aquí tenemos 3 opciones

-Xms<size>        set initial Java heap size
-Xmx<size>        set maximum Java heap size
-Xss<size>        set java thread stack size

java -Xms16m -Xmx64m ClassName

En la línea anterior podemos establecer el montón mínimo a 16mb y el montón máximo 64mb

 145
Author: Karthik Reddy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-21 12:23:38

En una JVM de 32 bits, el tamaño de montón más grande que puede establecer teóricamente es de 4 gb. Para usar un tamaño de montón más grande, necesita usar una JVM de 64 bits. Prueba lo siguiente:

Java-Xmx6144M-d64

El indicador-d64 es importante ya que le indica a la JVM que se ejecute en modo de 64 bits.

 25
Author: Kevin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-10-14 12:59:10

Es posible aumentar el tamaño del montón asignado por la JVM en eclipse directamente En eclipse IDE goto

Ejecutar - - - - >Ejecutar configuraciones - - - - >Argumentos

Enter-Xmx1g(Se utiliza para establecer el tamaño máximo como Xmx256m o Xmx1g...... m> > mb g - - - > gb)

 10
Author: Karthik Reddy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-20 08:11:44

Java - d64-Xms512m-Xmx4g HelloWorld

Donde, - d64: Habilitará JVM de 64 bits - Xms512m: Establecerá el tamaño inicial del montón como 512 MB - Xmx4g: Establecerá el tamaño máximo del montón como 4 GB (aquí el nombre del archivo java es: HelloWorld.java)

 8
Author: Sumit Deshinge,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-12 07:03:12

Puedo aumentar la memoria del montón a 75% de memoria física (Pila de 6GB).

Sí puedes. De hecho, puede aumentar a más de la cantidad de memoria física, si lo desea.

Si es una buena idea hacer esto depende de cuánto más se esté ejecutando en su sistema. En particular, si el "conjunto de trabajo" de las aplicaciones y servicios que se están ejecutando actualmente supera significativamente la memoria física disponible, su sistema es responsable de "thrash", el gasto de un mucho tiempo moviendo páginas de memoria virtual hacia y desde el disco. El efecto neto es que el sistema se vuelve horriblemente lento.

 6
Author: Stephen C,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-10-14 10:16:48

Por favor, use el siguiente comando para cambiar el tamaño del montón a 6 GB

export JAVA_OPTS="-Xms6144m -Xmx6144m -XX:NewSize=256m -XX:MaxNewSize=356m -XX:PermSize=256m -XX:MaxPermSize=356m"
 2
Author: Baum mit Augen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-18 00:21:39

Puede aumentar el Tamaño del montón pasando los parámetros JVM - Xms y - Xmx como a continuación:

Para Archivos Jar:

java -jar -Xms4096M -Xmx6144M jarFilePath.jar

Para Archivos Java:

 java -Xms4096M -Xmx6144M ClassName

Los parámetros anteriores aumentan el InitialHeapSize (-Xms) a 4GB (4096 MB) y MaxHeapSize(-Xmx) a 6GB (6144 MB).

Pero, el Tamaño del Montón de la Generación Joven seguirá siendo el mismo y el tamaño del montón adicional se agregará al Tamaño del Montón de la Generación Antigua. Para igualar el tamaño de la Pila de Generación Joven y la Pila de Generación Vieja , use -XX:NewRatio=1-XX:-UseAdaptiveSizePolicy parámetros.

java -jar -Xms4096M -Xmx6144M -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy pathToJarFile.jar

-XX: NewRatio = Old Gen Heap Size: Young Gen HeapSize (Puedes jugar con esta proporción para obtener la proporción deseada).

 2
Author: Sahil Chhabra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-20 08:47:02

Esto solo funciona con la versión de Java de 64 bits. Vaya al Panel de control y haga clic en el icono de Java. En la pequeña ventana del Panel de Control de Java, haga clic en la barra de menú de Java y luego haga clic en el botón view.

Si tiene dos plataformas Java, desactive la versión anterior de Java, luego haga clic en Parámetros de tiempo de ejecución campo de texto y escriba -Xmx1024m o menos que el tamaño de RAM. No aumente el tamaño del montón igual a la RAM, de lo contrario su sistema se bloqueará.

 2
Author: madhu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-04 17:39:45

Varias personas señalaron las respuestas específicas para el tamaño del montón con las opciones de jvm de -Xms y -Xms. Quiero señalar que este no es el único tipo de opciones de memoria para la jvm. Específicamente si usted es get stack over flows, entonces usted querrá aumentar el tamaño de la pila mediante la adición de una opción adicional como -Xss8m.

Para este problema, las opciones de jvm de algo como -Xms2g -Xmx6g -Xss8m serían una solución.

Estoy compartiendo esta información mientras mis búsquedas en Google sobre cómo aumentar la memoria jvm me llevó a esta solución, y las soluciones no funcionaban con grandes cantidades de asignación de memoria. Una vez que me di cuenta de lo que la configuración específica eran para, fui capaz de Google cómo aumentar el tamaño de la pila y encontré el param que falta. :) Espero que esto ahorra tiempo a otros, como lo haría de ahorrarme un montón de tiempo. :)

 1
Author: James Oravec,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-30 04:19:43

Sí. Puedes.

Puede aumentar su memoria de montón al 75% de la memoria física (Montón de 6 GB) o superior.

Dado que está utilizando 64 bits, puede aumentar el tamaño de su montón a la cantidad deseada. En caso de que esté utilizando 32bit, está limitado a 4 GB.

$ java -Xms512m -Xmx6144m JavaApplication

Establece el tamaño inicial del montón en 512mb y el tamaño máximo del montón en 6GB.

Espero que ayude.. :)

 0
Author: Sarat Chandra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-12 11:23:40