As fugas de memória, que em Java freqüentemente ocorrem quando os objetos guardam referências inapropriadamente, podem degradar o desempenho e eventualmente causar o travamento de um programa. A perspectiva Criação de Perfis e Log inclui visualizações para analisar o uso de memória do aplicativo e para detectar essas fugas.
As seguintes visualizações estão disponíveis para análise de fuga de memória:
Após identificar uma fuga, é possível utilizar Probekit para projetar probes personalizadas para investigar objetos específicos que podem estar causando fuga.
Para identificar rapidamente os candidatos à fuga, execute a análise de fuga de memória gerenciando um perfil com um conjunto de criação de perfis da Análise de Fuga de Memória. Também é possível examinar o uso de memória gerenciando um perfil com o conjunto de criação de perfis de Análise de Memória; é possível navegar por esses dados com as visualizações Gráfico de Referência do Objeto, Referências do Objeto e Detalhes do Objeto, mas não é possível utilizar os dados para gerar uma lista de candidatos à fuga.
A análise de fuga de memória utiliza algoritmos avançados para identificar potenciais fugas de memória com base em uma comparação de dois dumps de heap. É possível definir uma configuração de criação de perfil para permitir a captura de dumps de heap manualmente ou automaticamente em horários especificados no seu conjunto de criação de perfil.
Para analisar fugas:
Agora é possível modificar o código para limpar as referências que não mais sejam úteis, para que o coletor de lixo possa coletar objetos desnecessários. Gere um perfil de seu aplicativo novamente para verificar se a fuga foi corrigida e para detectar fugas adicionais.
Para obter informações adicionais, leia Analisando Fugas de Memória.
O conjunto de criação de perfis da Análise de Memória, com o tipo de criação de perfis da Análise de Memória/Fuga, permite que você colete as referências de objeto e visualize dumps de heap. Note que esses dados podem ser visualizados nas visualizações Gráfico de Referência do Objeto, Referências do Objeto e Detalhes do Objeto, mas não é possível utilizá-los para gerar uma lista de candidatos à fuga.
Para investigar o uso de memória: