Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

203
Vistas
Recolección de basura JVM: rastreo de objetos vivos en la generación joven

Mientras recopilan la memoria de la generación joven, los recopiladores de JVM escanean solo los objetos raíz (objetos en el montón accesibles directamente desde el conjunto raíz) que pertenecen a la generación joven y también usan una tabla de tarjeta respaldada por barrera de escritura/conjunto recordado para determinar las regiones del antiguo generación que posiblemente podría contener objetos que contienen referencias a objetos en la generación joven.

La pregunta que tengo es que si el joven coleccionista determina que un objeto en particular en la generación joven solo tiene una única referencia externa de un objeto en la generación anterior, ¿cómo sabe si el objeto de la generación anterior en sí no es basura y por lo tanto hace el objeto de la generación joven 'en vivo' y no elegible para la colección? Por ejemplo, podría haber una ruta desde el conjunto raíz directamente a este objeto en la generación anterior que a su vez tenga una referencia a dicho objeto de generación joven. ¿El joven coleccionista suele considerar este objeto de la generación joven como vivo o determina de alguna manera si el objeto de la generación anterior que lo señala es vivo/basura antes de decidir ignorarlo/recolectarlo?

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

¿Cómo sabe si el objeto de la generación anterior en sí no es basura?

No es para eso que sirve una colección importante/completa. La suposición es que el objeto de la vieja generación no muere a menudo.

Cuando se realiza una recopilación completa, comprueba todos los objetos, pero cuando se realiza una recopilación menor/joven, solo se limpian los objetos de la recopilación joven.

about 4 years ago · Santiago Trujillo Denunciar

0

La pregunta es "¿cómo llegar a tal escenario?"

Para crear una referencia de un objeto antiguo a un objeto joven, el objeto antiguo debe ser accesible, ya que de lo contrario no podemos almacenar una referencia al objeto joven en él. Para volverse inalcanzable después, tenemos que modificar al menos una referencia raíz u otro objeto antiguo que anteriormente hacía referencia al objeto antiguo en cuestión.

Como ya mencionó, la JVM rastrea este tipo de escrituras, lo cual es crucial, ya que para detectar que un objeto antiguo ahora hace referencia a un objeto joven, debe saber que el área de memoria del objeto antiguo (también conocido como tarjeta) tiene sido modificado. En principio, dado que el marcado de tarjetas también implica recordar las referencias entrantes, el gc ahora es capaz de detectar que el objeto antiguo se volvió inalcanzable, incluso sin un gc mayor. Solo tiene que considerar la carta modificada (o el conjunto raíz) para aprender sobre ella. Si lo hace, depende de factores ambientales, como el algoritmo gc elegido, es decir, si usa CMS (no) o G1 (podría), y cómo se configuran las "colecciones mixtas" o la presión real de la memoria.

Por supuesto, si utiliza un recopilador concurrente, existe la posibilidad de que la modificación que hará que el objeto anterior sea inalcanzable ocurra mientras un ciclo de recopilación ya está en curso. En esta situación, es posible que el objeto joven se considere alcanzable durante este ciclo gc, incluso si no lo fue si la modificación ocurrió solo un nanosegundo antes.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda