[Preguntas de la entrevista] ¿Qué son los recolectores de basura en JVM?

A veces, el contenido del blog cambiará. El primer blog es el último. Es posible que otras direcciones de blogs no estén sincronizadas. Por favor, revíselo con atención.https://blog.zysicyj.top

Primera dirección del blog

Dirección del artículo de la serie.


En la máquina virtual Java (JVM), existen los siguientes recolectores de basura comunes:

  1. "Recolector en serie" : el recolector en serie es el recolector de basura más básico y utiliza un solo subproceso para la recolección de basura. Utiliza el algoritmo "marcar-copiar" para dividir la memoria del montón en la generación joven y la generación anterior, y realiza la recolección de basura copiando los objetos supervivientes. El recopilador en serie es adecuado para entornos de un solo subproceso y aplicaciones pequeñas.

  2. "Recolector paralelo" : el recolector paralelo es una versión de subprocesos múltiples del recolector en serie, que utiliza múltiples subprocesos para realizar la recolección de basura en paralelo. También utiliza un algoritmo de "marcar-copia", pero en comparación con el recolector en serie, el recolector en paralelo puede completar la recolección de basura más rápido. El recopilador paralelo es adecuado para procesadores multinúcleo y aplicaciones que requieren un alto rendimiento.

  3. "Recolector CMS" : el recolector CMS (Concurrent Mark Sweep) es un recolector de basura concurrente que utiliza el algoritmo "mark-sweep" para la recolección de basura. El recolector de CMS reduce el tiempo de pausa causado por la recolección de basura mediante el marcado y la limpieza concurrentes. Es adecuado para aplicaciones que requieren baja latencia.

  4. "Recolector G1" : el recolector G1 (Garbage-First) es un recolector de basura para grandes cantidades de memoria y utiliza recolección generacional y diseño de memoria regionalizada. El recolector G1 logra una recolección de basura de baja latencia y alto rendimiento mediante el marcado y la limpieza simultáneos, y reciclando preferentemente las áreas con mayor cantidad de basura. Es adecuado para aplicaciones grandes y aplicaciones que requieren tiempos de pausa predecibles.

  5. "Recolector ZGC" : El recolector ZGC es un recolector de basura de baja latencia, su objetivo es recuperar la mayor cantidad de memoria posible en un tiempo de pausa de no más de 10 milisegundos. El recopilador ZGC utiliza un diseño de memoria llamado "Región" para dividir la memoria del montón en múltiples regiones del mismo tamaño. Realiza un seguimiento de las relaciones de referencia de objetos mediante marcado y limpieza concurrentes, así como barreras de lectura y barreras de escritura. El recopilador ZGC es adecuado para aplicaciones que requieren una respuesta rápida y un alto rendimiento.

  6. "Shenandoah Collector" : Shenandoah Collector es un recolector de basura concurrente cuyo objetivo es recuperar la mayor cantidad de memoria posible en un tiempo de pausa de no más de 10 milisegundos. El recopilador Shenandoah utiliza una estructura de datos llamada "Conjunto recordado" para rastrear las relaciones de referencia de objetos. Garantiza la ejecución simultánea del recolector de basura y la aplicación mediante marcado y limpieza concurrentes, así como barreras de lectura y barreras de escritura. El recopilador Shenandoah es adecuado para aplicaciones que requieren una respuesta rápida y alta concurrencia.

Si te gusta mi contenido, haz clic en seguir.

Escanee el código QR y mantenga presionado para seguir el grupo de comunicación y obtener las últimas noticias. Pronto se lanzará el manual gratuito de preguntas de la entrevista en el grupo de comunicación.

alternativo

Sin público

alternativo

WeChat personal

alternativo

Este artículo está publicado por mdnice multiplataforma.

Supongo que te gusta

Origin blog.csdn.net/njpkhuan/article/details/132844618
Recomendado
Clasificación