Encontrar memory leaks

Posted Over 8 years ago. Visible to the public.

Encontrar memory leaks não é uma tarefa fácil, mas das últimas vezes eu consegui encontrar alguns utilizando as seguintes ferramentas:

Eclipse Mat Show archive.org snapshot

JSTAT Show archive.org snapshot

JProfiler Show archive.org snapshot

Quando a memória está cheia e não libera, eu gero um dump da heap utilizando o jstat

jmap -dump:live,file=NOME_DUMP PID_PROCESSO

Depois abro esse dump no Mat para analisar

Obs.: Quando o dump é muito grande, precisamos aumentar a memória do Mat, porque senão ele não consegue ler o arquivo todo.
Para isso, edite a memória disponível para ele no arquivo MemoryAnalyzer.ini. No exemplo abaixo temos 5Gb para ele.

-vmargs
-Xmx5120m

No caso do JProfiler edite a memória disponível no arquivo bin/jprofiler.vmoptions

Extra

Primeira vez na luta contra Memory Leaks em Java? Inicie seus estudos com estas dicas:

João Paulo
Last edit
About 7 years ago
Bruno Vieira
Tags
Posted by João Paulo to ZeroGlosa (2015-12-18 13:30)