algoritmo de recolección de basura de la JVM [tres]

El artículo resume la memoria en la que los objetos pueden ser reciclados, por lo que resumir este recolector de basura sobre cómo reciclar la basura.

Para la basura JVM eficiente, algoritmo de recolección de basura se resumen como sigue:

En primer lugar, la marca - algoritmo de barrido

Aquí Insertar imagen Descripción
algoritmo de etiquetado claro es el algoritmo basado en la recolección de basura, simple, peroHabrá un serio problema de los desechos espaciales. Anterior, si en este momento para crear un 3M objetos de tamaño, pero no en el espacio de memoria contigua> = 3M, GC se produce.

En segundo lugar, el algoritmo de replicación

Aquí Insertar imagen Descripción
El algoritmo se basa en la bandera algoritmo de aclarar, la primera área de memoria dividida en dos partes, una de las cuales utiliza solamente. Cuando uno de los cuales el uso de memoria cuando haya terminado, vivirá objetos copiados a otro, y luego vaciar éste. Por lo tanto cada vez durante toda la recuperación de la memoria de media área, no tienen en cuenta la complejidad de la memoria de la fragmentación, etc., siempre y cuando la parte superior de la pila puntero pasa secuencialmente asignados a, simple, operación eficiente. El algoritmo resuelve el problema de los desechos espacio de memoria algoritmo marca de barrido, pero el uso de memoria es sólo el 50%.

La corriente principal de la corriente máquinas virtuales comerciales se basan en el algoritmo de replicación para recuperar la nueva generación, la nueva generación de 98% de los objetos son "noche cruda hacia la muerte", por lo que no 1: 1 espacio de memoria se divide, pero divididos en 8: 1 : área de Eden y dos áreas pequeñas superviviente 1, en el que cada uso una región superviviente Eden y zona. Si no hay ningún objeto en otro pedazo de espacio suficiente para almacenar unas zonas de menor GC supervivencia superviviente, estos objetos directamente a través del mecanismo de garantía de asignación (como un buen crédito y devolver el dinero a tiempo cada vez, si no en un asegurado la gente, aquí es el equivalente a la antigua garante) en la vieja era.

En tercer lugar, la marca - Algoritmo de clasificación

Aquí Insertar imagen Descripción
Algoritmo de clasificación marca de marca de marca y barrido proceso de algoritmo que justo antes de los primeros objetos se mueven en vivo claro a un extremo, y luego borrar los objetos de basura. Los algoritmo resuelve el problema de las etiquetas para organizar algoritmo de espacio de memoria algoritmos problema de los desechos y bajo Espacio en blanco utilización. Sin embargo, las necesidades de algoritmos para organizar todas las direcciones de memoria de objetos en directo en el proceso de acabado, por lo que la eficiencia es muy baja.

En cuarto lugar, el algoritmo de recolección generacional

algoritmo de recolección generacional es en realidad una combinación de los anteriores tres algoritmos bajo ciertas circunstancias. Correspondiente al montón Esta área de memoria se divide en la vieja y de la nueva generación, que utilizan la nueva generación de algoritmo de replicación, utilizando viejos de marca - Barra o marca - algoritmos de ordenación.

modelos de memoria:

Aquí Insertar imagen Descripción
relación de viejo y nuevo de la generación de tamaño predeterminado de 1: 2, Eden s0 y s1, y la relación es de 8: 1: 1, puede modificar los parámetros.
Aquí Insertar imagen Descripción

Superviviente áreas de acción es jugar el papel de un tampón, si no es esta parte, todo menor de GC, Eden sobrevivir el objeto se moverá a los viejos años pronto se llenaron viejos años.

STW largo sucede cuando la zona vieja ocurrió completa GC (- la - Detener mundo), Barrio Antiguo, más memoria, más lento, por lo que la vieja memoria no es el más grande, mejor. área del antiguo tiene un gran número de "viejos objetos de tontos, porque no hay un área de memoria vieja política de garantía, si el algoritmo de replicación, es un desperdicio de espacio, puede conducir fácilmente a OOM, por lo que el uso de la marca - algoritmos de ordenación.

Objeto proceso de asignación:
De hecho, la mayoría de ellos están en la memoria objetos noche cruda hacia la muerte, el tiempo de supervivencia es muy corto. Los nuevos objetos se crean generalmente asignará memoria espacio Edén, si el espacio de memoria insuficiente Eden District, JVM llevará a cabo un área menor GC, Edén y S0 o S1 vaciar, Eden área y S0 o S1 esa zona despejada de objetos en movimiento en directo a esa área o inactivo s0 s1, la Edad + 1 s área de movimiento sobre los objetos vivos no puede dejar ir (debido al mecanismo de garantía de asignación) y los objetos se mueven alcanzado los valores predeterminados de edad y 15 años de edad. Eden entonces, si todavía se ajuste al objeto, lo que indica que un objeto grande, el objeto será directamente en la vieja era, si no se ajusta a los viejos años, JVM será completa GC, a continuación, si la tienda no menos, se produce OOM, se almacena bajo depositar.
La figura :( sigue de la red)
Aquí Insertar imagen Descripción

Hay tres objetos entrarán en el año de edad:

Grandes objetos
grandes objetos se refieren a objetos requiere una gran cantidad de espacio de memoria contigua. -XX: PretenureSizeThreshold puede establecer el tamaño de un objeto grande, más que el tamaño del objeto es grande, esto es sólo un pequeño parámetro en serie y ParNew dos colectores.

A largo plazo objetivo supervivencia
máquina virtual define una edad objetivo para cada contador de objetos (Edad) (en la cabecera del sujeto). Objetos continuarán en la zona entre el De y superviviente del movimiento región en circunstancias normales, el objeto en cada zona experimentan un superviviente del Menor GC, aumentó la edad, 1 año de edad. Medida que la edad aumenta a la edad de 15 años, esta vez será transferido a la vieja era. La edad puede JVM parámetro -XX: para establecer MaxTenuringThreshold.

Edad objeto dinámico
máquina virtual no requiere que el objeto debe ser de 15 años de edad, se puso área mayor, si el espacio superviviente de cierta edad o menos (incluyendo la edad) es mayor que la mitad del tamaño total del espacio superviviente del objeto, entonces mayor de edad igual o superior a la la edad objetivo se puede ir directamente a la zona de ancianos, mecanismo dinámico desencadenó después de la edad del menor GC.

Publicado 11 artículos originales · ganado elogios 0 · Vistas 614

Supongo que te gusta

Origin blog.csdn.net/fei1234456/article/details/104736912
Recomendado
Clasificación