La investigación principal en este artículo es el contenido relevante de la explicación detallada de la configuración de la bandera en JVM, que se introduce de la siguiente manera.
-Xmx3550m: establezca la memoria máxima disponible de JVM a 3550m.
-Xms3550m: Establezca la memoria inicial disponible de JVM a 3550m.
-Xmn2g: establezca el tamaño de la generación joven en 2g.
-Xss128k: configure el tamaño de la pila de cada hilo en 128k
-Xx: Newsize = 4: Establezca el tamaño de la generación joven en 4
-Xx: newratio = 4: Establezca la relación de la generación joven (incluidas las áreas de Edén y dos sobrevivientes) a la generación anterior (excluyendo la generación persistente) a 4, entonces la relación de la generación joven para la generación anterior es 1: 4, y la generación joven representa 1/5 de toda la pila
-Xx: SurvivorRatio = 4: establece la relación de tamaño entre el área del Edén y el área de sobrevivientes en la generación joven. Establecido en 4, la relación entre las dos áreas de sobrevivientes y un área de Eden es 2: 4, y un área de sobrevivientes representa 1/6 de toda la generación joven.
-Xx: maxPermsize = 16m: Establezca el tamaño de generación persistente en 16m.
-Xx: PreteneSizeThreshold = n, los objetos mayores que n se colocan directamente en la vejez
-Xx: Maxtenuringthreshold = 0: Establezca la edad máxima de basura. Si se establece en 0, el objeto de generación joven no pasará por el área de sobrevivientes y ingresará directamente a la generación anterior.
-Xx:+UseParallElLoldGC: Configure el método de recolección de basura de generación antigua para la recolección paralela.
Tamaño del montón completo = tamaño de generación joven + tamaño de generación anterior + tamaño de generación persistente.
-Xx:+useerialgc: configure el coleccionista en serie
-Xx:+useParallElgc: Establezca el coleccionista paralelo
-Xx:+UseParalledLoldgc: Configurar coleccionista de generación paralelo
-Xx:+useconcmarksweepgc: configure el coleccionista concurrente
-Xx:+printgc
-Xx:+printgcdetails
-Xx:+printgctimestamps
-Xloggc: nombre de archivo
-Xx: parallelgcthreads = n: Establezca el número de CPU utilizadas al recolectar el coleccionista paralelo. El número de hilos recolectados en paralelo.
-Xx: maxgcpausemillis = n: establece el tiempo de pausa máximo para la colección paralela
-Xx: gcTimeratio = n: establecer el porcentaje de tiempo de recolección de basura para programar el tiempo de ejecución. La fórmula es 1/(1+N)
-Xx:+cmsIncrementMode: Establecer en modo incremental. Es adecuado para situaciones de CPU individuales.
-Xx: parallelgcthreads = n: Establezca el número de CPU utilizadas cuando la generación joven del coleccionista concurrente es la colección paralela. El número de hilos utilizados en la colección paralela.
Supongamos que hay un archivo llamado testMem.java
javac testmem.java java -verbose: gc -xms20m -xmx20m -xmn10m -xx:+printgcdetails -xx: supervivivorratio = 8 testmem
-Xms20m: el tamaño inicial del montón Java en JVM es de 20 m. (Incluida la nueva generación y los ancianos)
-Xmx20m: el tamaño máximo del montón Java en JVM es de 20 m, lo que significa que no es escalable. (Incluida la nueva generación y los ancianos)
-Xmn10m: el tamaño de la nueva generación es de 10 m
-Xx:+printgcdetails: imprimir información detallada de GC
-Xx: SurvivorRatio = 8: La relación espacial de un solo área de sobrevivientes en la nueva generación es 8: 1, entonces la relación de dos áreas de sobrevivientes a un área de Edén es 2: 8, y un área de superviviente representa 1/10 de toda la generación joven
Después de conocer la información de la bandera anterior, podemos obtener la siguiente información:
El tamaño total del montón Java es 20m = 20 * 1024k = 20480k
El tamaño de la generación cepónima: 10m = 10 * 1024k = 10240k
Espacio Eden: 10240k * 8/10 = 8192k
Desde el espacio: 10240k * 1/10 = 1024k
al espacio: 10240k * 1/10 = 1024k
Tamaño de la vejez: 20m - 10m = 10m = 10240k
Lo anterior es toda la explicación detallada de la configuración de la bandera en JVM en este artículo, espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!