RSS RSS feed | Atom Atom feed

JHat - Analisando a Heap

Você nunca teve aquele problema de Out Of Memory e perguntou-se "Puts... o que tem tanto nessa heap que esta me causando problemas ?" Pois bem... se voce não tiver um bom profiler em mãos... o Java SE 6 vem com um utilitario que faz dump da heap e outro que expoem os objetos dentro dela... é o jmap e o jhat !!! Experimente .....

Carregue seu programa na meoria e descubra qual a PID que ele se encontra rodando...
Use o jmap para gerar um HEAP DUMP:

C:\Arquivos de programas\Java\jdk1.6.0\bin>jmap -dump:format=b,file=heap.bin 2316
Dumping heap to C:\Arquivos de programas\Java\jdk1.6.0\bin\heap.bin ...
Heap dump file created

Depois use o jhat para vizualisar:
C:\Arquivos de programas\Java\jdk1.6.0\bin>jhat heap.bin
Reading from heap.bin...
Dump file created Mon Apr 02 15:07:00 BRT 2007
Snapshot read, resolving...
Resolving 179216 objects...
Chasing references, expect 35 dots...................................
Eliminating duplicate references...................................
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.


Pronto agora é só ir em http://localhost:7000 e fazer a festa ;) muito util ! Existem informações ali do arco da velha... hehehe

Outra coisa bem interessante é que voce pode navegar na heap usando linguagem SQL... um tal de OQL... acesse

http://localhost:7000/oql/

e digite por e:
select s from java.lang.String s  where s.count > 100

E vai perceber o poder dessa ferramenta ;) some help ?
Aqui tem mais sobre o OQL

caso voce precise que a JVM faça o dump na hora que ocorrer um OutOffMemory... rode ela com a opcao :
-XX:+HeapDumpOnOutOfMemoryError





Adicione um comentário Envie um TrackBack