2012-09-26 85 views
7

El volcado del montón de Jvisualvm en la pestaña de resumen tiene la funcionalidad de inspeccionar objetos más grandes por tamaño retenido.¿Qué significa "tamaño retenido" en el inspector de memoria de jVisualVM?

¿Qué significa retenido realmente? ¿Cómo se calcula y se muestra aquí el tamaño de un árbol de objetos?
En caso de que pueda ver aquí el objeto (10M) y su objeto miembro (5M), ¿cómo debo calcular el impacto del montón? ¿Ambos tomaron 10M o 15M del montón?
¿Por qué no puedo ver ninguno de nuestros enormes objetos de aplicación de fachada?

Gracias.

Respuesta

7

¿Qué significa retenido realmente?

Qué grande sería después de un gc completo. P.ej. un WeakHashMap con un gran número de entradas podría estar vacío después de un GC.

¿Cómo se calcula el tamaño de un árbol de objetos y se muestra aquí?

La JVM determina esto usando una API interna.

En caso de que pueda ver aquí el objeto (10M) y su objeto miembro (5M), ¿cómo debo calcular el impacto del montón? ¿Ambos tomaron 10M o 15M del montón?

El total es de 10 MB. Si este es su mayor problema, no se preocupe a menos que tenga una máquina con solo unos 100 MB. (En cuyo caso lo actualizaría)

¿Por qué no puedo ver ninguno de nuestros enormes objetos de aplicación de fachada?

¿Quizás no son tan grandes en la memoria como crees? p.ej. pueden ser caros de cargar, pero eso no los hace enormes.

BTW: VisualVM es un buen generador de perfiles de memoria libre pero solo es útil para encontrar problemas obvios. Me gustaría probar un perfilador comercial como YourKit (para el que puedes obtener una licencia de evaluación gratuita) para comparar.

+0

objeto de fachada contiene enlaces a grandes objetos de chaché. En jvisuavm puedo ver el objeto de caché en la parte superior, pero no puedo ver el objeto de fachada que debe tener al menos el mismo tamaño. –

+0

I su situación, probaría un perfilador comercial para ver si le da una opinión diferente. Los diferentes perfiladores funcionan de manera diferente, por lo que ejecutar más de uno puede ser útil si no estás seguro de que te está dando los resultados correctos. –

Cuestiones relacionadas