tool source que open leak java profiling heap

java - source - ¿Cómo analizo un archivo.hprof?



java dump analyzer (5)

Tengo un servidor de producción ejecutándose con la siguiente marca : - XX: + HeapDumpOnOutOfMemoryError

Anoche generó un archivo java-38942.hprof cuando nuestro servidor encontró un error de montón. Resulta que los desarrolladores del sistema sabían de la bandera, pero no hay manera de obtener información útil de ella.

¿Algunas ideas?


Acaba de obtener el Analizador de memoria Eclipse . No hay nada mejor por ahí y es gratis.

JHAT solo es utilizable para "aplicaciones de juguetes"


Puede usar JHAT , The Java Heap Analysis Tool provisto por defecto con el JDK. Es línea de comando pero inicia un servidor / navegador web que utiliza para examinar la memoria. No es el más amigable para el usuario, pero al menos ya está instalado la mayoría de los lugares a los que irá. Una vista muy útil es el enlace "histograma de montón" en la parte inferior.

ex: jhat -port 7401 -J-Xmx4G dump.hprof

jhat puede ejecutar OQL "actualmente" también (enlace inferior "ejecutar OQL")


Si desea una herramienta bastante avanzada para hacer algunas investigaciones serias, mire el proyecto Memory Analyzer en Eclipse, contribuido por SAP.

Algo de lo que puede hacer es alucinantemente bueno para encontrar fugas de memoria, etc., incluyendo ejecutar una forma de SQL limitado (OQL) contra los objetos en memoria, es decir,

SELECCIONE toString (firstName) FROM com.yourcompany.somepackage.User

Totalmente brillante.


También puede usar HeapWalker desde Netbeans Profiler o la herramienta independiente Visual VM . Visual VM es una buena alternativa a JHAT, ya que es independiente, pero es mucho más fácil de usar que JHAT.

Necesita Java 6+ para usar Visual VM por completo.


YourKit Java Profiler parece manejarlos también.