Algoritmos GC de uso común

Inserte la descripción de la imagen aquí
Cuando la JVM realiza GC, no recopila las tres áreas. La mayoría de las veces, la recuperación es Cenozoico ~
● Cenozoico
● Área de supervivencia (forma, a)

GC más antiguo de dos tipos: GC ligero (GC normal), GC pesado (GC global)

. El origen y el destino del área sobreviviente son Cambio dinámico, quien esté vacío, quien deba
Inserte la descripción de la imagen aquí

Algoritmos GC de uso común

Algoritmo de contador de referencia:
Principio: Este objeto tiene una referencia, luego +1; borre una referencia, luego -1. Solo se recopilan los objetos con un recuento de 0.
Desventajas: incapaz de afrontar el problema de las referencias circulares. Por ejemplo: los objetos A y B tienen campos by a respectivamente. Sea Ab = B y Ba = A. Además de estos dos objetos, ya no hay referencia. De hecho, ya no se puede acceder a estos dos objetos, pero el El algoritmo de recuento de referencias no puede recuperarlos.
Inserte la descripción de la imagen aquí
Copiar algoritmo: El
algoritmo de copia consiste en dividir el espacio de la memoria en dos partes según la capacidad. Cuando esta pieza de memoria se agota, los objetos supervivientes se copian en otra pieza y la pieza usada se limpia de una vez. De esta forma, la mitad de la memoria se recupera cada vez. No es necesario considerar situaciones complejas como la fragmentación de la memoria durante la asignación de memoria, simplemente mueva el puntero en la parte superior del montón y asigne la memoria en orden, lo cual es simple de implementar y eficiente de ejecutar.
Los objetos que sobrevivan en el Edén se copiarán en Para
Inserte la descripción de la imagen aquí

● Beneficios: no hay fragmentación de la memoria ~
● Desventajas: espacio de memoria desperdiciado ~: demasiado - la mitad del espacio siempre está vacío para. Suponiendo que el objeto está 100% vivo (situación extrema), el
mejor escenario de uso del algoritmo de replicación: cuando la supervivencia del objeto es baja; el área del recién nacido ~

Algoritmo de eliminación de marcas:
el algoritmo se divide en dos etapas: marcado y limpieza. Marcar es la etapa de marcar todos los objetos activos, limpiar es la etapa de reciclar objetos sin marcar
Inserte la descripción de la imagen aquí
● Ventajas: ¡No se requiere espacio adicional!
● Desventajas: Dos escaneos, una gran pérdida de tiempo y fragmentación de la memoria.

Compresión de
marcas: el algoritmo de compresión de marcas es similar al algoritmo de limpieza de marcas, excepto que el siguiente paso es mover todos los objetos supervivientes a un extremo y luego borrar directamente la memoria fuera del límite final.
Inserte la descripción de la imagen aquí
Compresión de eliminación de marcas:
primero realice la eliminación de algunas marcas y luego comprima

Resumen:
Eficiencia de la memoria: Copiar algoritmo> Algoritmo de eliminación de marcas> Algoritmo de compresión de marcas (complejidad de tiempo)
Limpieza de la memoria: Algoritmo de copia = Algoritmo de compresión de marcas> Algoritmo de eliminación de marcas
Utilización de la memoria: Algoritmo de compresión de marcas = Algoritmo de eliminación de marcas> Algoritmo de copia

Considere una pregunta: ¿No existe un algoritmo óptimo?
Respuesta: No, no existe el mejor algoritmo, solo el algoritmo más adecuado -> - GC: Algoritmo de recopilación generacional Generación
joven:
● Tasa de supervivencia baja
● Algoritmo de replicación!
Generación antigua:
● Área grande : tasa de supervivencia
● Eliminación de marcas (la fragmentación de la memoria no es demasiado) + compresión de marcas mezclada

Temas de GC:
● Modelo de memoria JVM y particiones ~ ¿qué poner en cada área en detalle?
¿Cuáles son las particiones en el montón? Eden, form, to, senior area, hable sobre sus características.
● ¿Cuáles son los algoritmos de GC? Mark ¿Cómo funcionan los métodos de limpieza, la compresión de marcas, los algoritmos de copia y los contadores de referencia?
¿ Cuándo ocurren la GC ligera y la GC pesada, respectivamente?

Supongo que te gusta

Origin blog.csdn.net/qq_41784749/article/details/111589351
Recomendado
Clasificación