Explique el uso Xmsy los Xmxparámetros en las JVM. ¿Cuáles son los valores predeterminados para ellos?
java
memory-management
parameters
jvm
Pankaj
fuente
fuente

-Xmx128m -Xms64mpuede alcanzar un máximo de275mRES mem, pero cuando se usa-Xmx128m -Xms128mpuede alcanzar un máximo de550mRES mem Usar Java 8 Lo mejor es estresar el GC y ver lo que sucede ...Respuestas:
El indicador
Xmxespecifica el grupo de asignación de memoria máxima para una máquina virtual Java (JVM), mientras queXmsespecifica el grupo de asignación de memoria inicial.Esto significa que su JVM se iniciará con una
Xmscantidad de memoria y podrá usar unaXmxcantidad máxima de memoria. Por ejemplo, al iniciar una JVM como la siguiente, comenzará con 256 MB de memoria y permitirá que el proceso use hasta 2048 MB de memoria:El indicador de memoria también se puede especificar en diferentes tamaños, como kilobytes, megabytes, etc.
El
Xmsindicador no tiene un valor predeterminado y, por loXmxgeneral, tiene un valor predeterminado de 256 MB. Un uso común para estas banderas es cuando te encuentras con unjava.lang.OutOfMemoryError.Cuando use estas configuraciones, tenga en cuenta que estas configuraciones son para el montón de JVM , y que la JVM puede / usará más memoria que solo el tamaño asignado al montón. De la documentación de Oracle :
fuente
OutOfMemoryErrorse producirá un error.-Xms256m"256 MiB", no "256 MB", ya que utiliza potencias binarias en lugar de potencias de diez. Ver en.wikipedia.org/wiki/Binary_prefix . Además, debido a que se reserva un espacio inutilizable para un grupo adicional de espacio de Survivor, la cantidad de memoria realmente disponibleRuntime.getRuntime().maxMemory()es menor que el valor especificado a través de -XmxEjecute el comando
java -Xy obtendrá una lista de todas las-Xopciones:Las opciones -X no son estándar y están sujetas a cambios sin previo aviso.
Espero que esto te ayude a entender
Xms,Xmxasí como muchas otras cosas que más importan. :)fuente
Puede especificarlo en su IDE. Por ejemplo, para Eclipse en Ejecutar configuraciones → argumentos de VM . Puedes ingresar
-Xmx800m -Xms500mcomofuente
La pregunta en sí ya se ha abordado anteriormente. Simplemente agregue parte de los valores predeterminados.
Según http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html
El valor predeterminado de Xmx dependerá de la plataforma y la cantidad de memoria disponible en el sistema.
fuente
- Tamaño de almacenamiento dinámico inicial de Xms para el inicio; sin embargo, durante el proceso de trabajo, el tamaño de almacenamiento dinámico puede ser inferior a -Xms debido a la inactividad de los usuarios o las iteraciones de GC. Este no es un tamaño de almacenamiento dinámico mínimo requerido.
-Xmx tamaño máximo de almacenamiento dinámico
fuente