2011-01-27 15 views
16

Como se ve en la captura de pantalla aquí, 0 objetos en vivo, 9 objetos asignados. ¿Cuál es la diferencia entre un objeto en vivo y uno asignado?jvisualvm diferencia entre objetos en vivo y objetos asignados

jvisualvm screenshot

+1

Supongo que un objeto asignado que no está activo es solo uno que aún no se ha GCed. –

+1

Esa es mi suposición también, pero me gustaría tener algunos hechos definitivos :-) – Anonym

Respuesta

3
  • objetos asignados son todos los objetos que se han creado desde el inicio de la aplicación (o reiniciar)
  • objetos vivos son objetos alcanzables que están siendo utilizados activamente por su programa (probablemente todavía en la generación joven)
11

El número de objetos asignados no es el número de objetos aún no recuperados por el recolector de elementos no utilizados. Más bien, es el número de objetos creados desde el inicio de la aplicación, o desde un reinicio del "Buffer de resultados recopilados" en VisualVM (hay un botón en la vista de perfil de memoria para restablecer el búfer de resultados recopilados).

Los objetos en vivo son aquellos objetos que no han sido reclamados por el recolector de basura; esto puede incluir objetos que son inalcanzables, y definitivamente incluirá objetos que todavía están en uso por la aplicación.

Cuestiones relacionadas