optifine 2gb java jvm jvm-arguments

java - 2gb - ¿Qué argumentos representan qué opciones de memoria JVM?



optifine jvm arguments (4)

-Xss: Tamaño de pila.

Se utiliza para establecer el tamaño de su pila. Los valores de pila solo existen dentro del alcance de la función en la que se crean. Una vez que la función vuelve, se descartan.

La forma más fácil de quedarse sin espacio en la pila es recursar demasiado profundo.

-Xms, -Xmx: Tamaño mínimo y máximo de almacenamiento dinámico.

Se utiliza para establecer el tamaño de su montón. El montón es donde se asignan los objetos. Los objetos persisten hasta que se recogen basura.

La forma más fácil de quedarse sin espacio de almacenamiento dinámico es asignar algo masivo.

-XX: MaxPermSize: Generación permanente.

La generación permanente es especial porque contiene los datos que necesita la máquina virtual para describir objetos que no tienen una equivalencia en el nivel de lenguaje Java. Por ejemplo, los objetos que describen clases y métodos se almacenan en la generación permanente.

Por lo general, se queda sin espacio Permgen si de alguna manera está filtrando referencias a clases que carga dinámicamente. Esto plaga algunos contenedores web en particular.

Hay muchos argumentos de JVM que afectan el uso de memoria de JVM como -Xms, -Xmx, -Xns, -XX:MaxPermSize...

  • ¿Qué hacen?
  • ¿Hay más?
  • ¿Cuál tengo que aumentar cuando obtengo el error (por ejemplo, OutOfMemoryError , StackOverflowError ...)?

No puedo encontrar una buena hoja de trucos para ellos, vamos a crear una aquí.


Hay cientos de opciones de JVM disponibles. Básicamente se clasifican en tres tipos:

  1. Opciones estándar,
  2. Opciones X no estándar,
  3. Opciones XX no estándar,

Lista de algunas opciones estándar: [Para ver la lista completa, ejecute el comando "java" sin ninguna opción]

-client to select the "client" VM -server to select the "server" VM -cp <class search path of directories and zip/jar files> -classpath <class search path of directories and zip/jar files> A ; separated list of directories, JAR archives, and ZIP archives to search for class files. -D<name>=<value> set a system property -version print product version and exit -showversion print product version and continue -X print help on non-standard options`

Lista de algunas opciones de X no estándar: [Para ver la lista completa, ejecute el comando "java -X"]

-Xincgc enable incremental garbage collection -Xms<size> set initial Java heap size -Xmx<size> set maximum Java heap size -Xss<size> set java thread stack size -Xprof output cpu profiling data -Xmixed mixed mode execution (default) -Xint interpreted mode execution only

Lista de algunas opciones XX no estándar: [Lista completa disponible here ]

-XX:InitialHeapSize=<size> set initial Java heap size. Same as -Xms<size>. -XX:MaxHeapSize=<size> set maximum Java heap size. Same as -Xmx<size>. -XX:+PrintFlagsFinal prints all JVM options passed. -XX:+UnlockDiagnosticVMOptions opens up lot more VM options.

Si desea mejorar su conocimiento en las opciones de JVM, consulte este blog . El enlace es solo la parte 1 de 8. Conozca y lea otras partes también.


Lea las opciones de JVM explicadas . Aquí hay extractos de ella:

  • Si está recibiendo con frecuencia java.lang.OutOfMemoryError: Java heap space errores de java.lang.OutOfMemoryError: Java heap space -Xmx java.lang.OutOfMemoryError: Java heap space deberían aumentar el valor de -Xmx .
  • Normalmente no es necesario ajustar -XX:PermSize y -XX:MaxPermSize , pero si ve eventos en el java.lang.OutOfMemoryError: PermGen space , a menudo puede aumentar estos valores.
  • -XX:MaxJavaStackTraceDepth : esto especifica cuántas entradas puede tener un seguimiento de pila para un error o excepción arrojado antes de que se Error un Error . Por lo tanto, si está tratando con grandes trazas de pila, puede usar esta opción para aumentar los entrantes permitidos antes del desbordamiento.

-Xms: esta opción establece el tamaño inicial y mínimo del montón de Java.

-Xmx: esta opción establece el tamaño máximo de -Xmx: dinámico de Java. El montón de Java (el "montón") es la parte de la memoria donde los bloques de memoria se asignan a los objetos y se liberan durante la recolección de basura.

-XX:PermSize: -XX:MaxPermSize: se utilizan para establecer el tamaño para la generación permanente. El espacio permanente es donde se almacenan la clase, los métodos, las cadenas internalizadas y los objetos similares utilizados por la máquina virtual y nunca se desasignan (de ahí el nombre).

-Xss: establece el tamaño de pila de hilos. Las pilas de hilos son áreas de memoria asignadas a cada hilo de Java para su uso interno. Aquí es donde el hilo almacena su estado de ejecución local.

-Xns: establece el tamaño del vivero. JRockit JVM usa un vivero cuando se usa el modelo de recolección de basura generacional, es decir, cuando el recolector de basura dinámico ha determinado que se debe usar el modelo de recolección de basura generacional o cuando el recolector de basura concurrente estático generacional (-Xgc: gencon) ha sido seleccionado. También puede usar -Xns para establecer un tamaño de vivero estático al ejecutar un recolector de basura dinámico (-XgcPrio).

  • Si obtiene java.lang.OutOfMemoryError: Java heap space de -Xmx java.lang.OutOfMemoryError: Java heap space que cambie el valor de -Xmx y -Xms .

  • Si está obteniendo java.lang.OutOfMemoryError: PermGen space intente aumentar el valor - XX:MaxPermSize .

  • Si está obteniendo java.lang.Error intente aumentar el valor -Xss . Puede ser útil al aumentar el tamaño de la pila, pero también debería echar un vistazo a su código.