JVM conocimiento máquina virtual

######## dos máquina virtual Jvm conocimiento detallado ##############################
un .Java HotSpot ™ 64 VM cliente bits en VM Server
jdk1.7 -> JDK / JRE / lib / i386

Dos .jvm configuración
estructura JVM:

subsistema de cargador de clases:
el responsable de cargar la información de clase del sistema de archivos o de la red.
El área de método:
la información de clase de almacenamiento y la piscina constante información de
pila de Java:
Cada java hilos de la máquina virtual Java de una pila privada.
pila de Java contiene las variables locales, los parámetros del método.
montón de Java:
el almacenamiento de instancia de objeto java. Son: la generación joven (Edén, s0, s1), edad (años de edad), en nombre de los titulares (permanen)

directo a la memoria:
la biblioteca de Java NIO permite el uso directo de memoria de programa java.
Java es fuera de la pila de memoria directa, para aplicar directamente al espacio de memoria del sistema.
Leer y escribir en frecuentes ocasiones.
montones de métodos nativos:
pilas de métodos nativos llaman se utiliza el método local (generalmente escrito en C).
sistema de recolección de basura:
sub-colector (serie, ParNew, Scavenge paralelo)
colector completo (el CMS, Serial Viejo, PARALL)
G1

registro PC:
cada espacio privado hilo.
Si el método actual es un método local, el valor del registro de la PC no está definido.
Si el método actual no es nativa, registro PC apuntará a la instrucción se está ejecutando actualmente.

El motor de ejecución:
la máquina virtual Java HotSpot Client (-client)
la máquina virtual Java HotSpot servidor (-server)

Figura estructura de pila de tres .jvm y generacional
estructura de pila figura JVM:

JVM pila generacional:
la nueva generación:
el HotSpot divide en bloques para la nueva generación, un Edén (Eden espacio más grande y dos más pequeñas Survivor (espacio de supervivencia, la ratio de morosidad del 8: 1: 1
cuando el área no es el Edén cuando se asigna espacio suficiente, la máquina virtual pondrá en marcha un GC Minor.
antigua Edad:
experimentó un número de la nueva generación (ver el umbral específico todavía sobrevivido después de objeto de configuración de máquina virtual GC entrará en la vieja era.
para GC baja frecuencia, una recuperación más lenta.
perpetuos:
generación de información de clase de almacenamiento permanente, constantes, variables estáticas, el compilador tiempo para compilar el código y otros datos
Java Specification máquina virtual señaló que la recolección de basura no puede, en general, no será la recolección de basura.

Cuatro de basura recogida algoritmo común
(1) algoritmo de recuento de referencias:
Este algoritmo es capaz de manejar el problema más mortal de las referencias circulares.
(2) algoritmo de replicación:

(3) bandera es algoritmo de borrado:

(4) etiquetas para organizar:

Cinco .jvm basura colector
subcolector
serie [colector serie, solo hilo GC. algoritmo de replicación. ],
ParNew [colector paralelo, una pluralidad de hilos gc. algoritmo de replicación. ],
Paralelo similar a la Scavenge [ParNew. Enfoque en el rendimiento del sistema (código de usuario que ejecuta el tiempo / (tiempo de ejecución de usuario + código de la basura recogida tiempo))]
colector completo
concurrente marca y barrido
[
colector concurrente, algoritmo de marca y barrido. GC proceso se divide en las siguientes cuatro pasos:
1. Marca inicial (Marque la CMS inicial)
2. Marca concurrente (CMS marca concurrente: GC Roots proceso de rastreo)
3. re-etiquetado (la observación de la CMS)
4. concurrente Claro (CMS barrido simultáneo: se objetos muertos se dará a conocer en su lugar, la atención: no hay compresión aquí)
]
serie de cinco [colector serie, solo hilo GC. Etiquetas para organizar algoritmo]
PARALL viejo [el uso de multi-threading y "marca - acabado" algoritmo, la prioridad rendimiento]
G1 [Colección de partición]


Seis optimización .JVM
(1) JDK JVM comandos relacionados con la optimización-usa comúnmente
jvisualvm
el JDK para ejecutar el monitoreo más potente y herramienta de solución de problemas
de pérdidas de memoria del monitor, el seguimiento de la recolección de basura, al realizar el análisis de la memoria, el análisis de la taza, el análisis hilo.
(2) plug-in visualgc
ha sido descargado -> Añadir plug-ins -> Instalar.
(3) JVM parámetros comunes
-Xms: tamaño de la pila inicial
-Xmx: tamaño máximo del montón
-Xmn: Conjunto el tamaño de la generación joven
-Xss: Conjunto Java de cada hilo pila tamaño
-XX: NewSize = n: Set el tamaño de la generación joven. Tales como: 3, que muestra la generación joven a la relación de la generación antigua de 1: 3.
-XX: SurvivorRatio = n: la relación del área de generación joven y dos región Eden superviviente. nota sobreviviente de dos zonas. Tales como: 3, expresado Eden: superviviente = 3: 2, el área total de una generación joven superviviente 1/5
-XX: MaxPermSize = el n-: establecer el tamaño de generación permanente
-XX: MaxTenuringThreshold: Conjunto la edad máxima de basura

Publicado 20 artículos originales · ganado elogios 0 · Vistas 1197

Supongo que te gusta

Origin blog.csdn.net/jinhuding/article/details/104993579
Recomendado
Clasificación