As fugas de memória, que no Java normalmente resultam quando objetos mantêm referências inapropriadamente, podem degradar o desempenho e eventualmente causar o travamento de um programa. A perspectiva Profiling and Logging (Traçado de Perfil e Log) inclui visualizações para analisar o uso de memória em um aplicativo e para detectar essas fugas.
As seguintes visualizações estão disponíveis para análise de fuga de memória:
Depois de identificar uma fuga, é possível utilizar o Probekit para projetar probes personalizados para investigar objetos específicos que podem estar com fuga.
Para identificar rapidamente os candidatos à fuga, execute a análise de fuga de memória com um conjunto de traçado de perfil Memory Leak Analysis (Análise de Fuga de Memória). Também é possível examinar o uso de memória com o conjunto de traçado de perfil Memory Analysis (Análise de Memória); você pode procurar esses dados com as visualizações Object Reference Graph (Gráfico de Referência do Objeto), Object References (Referências do Objeto) e Object Details (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 fugas de memória potenciais com base na comparação de dois dumps de heap. É possível definir uma configuração de traçado de perfil para permitir a captura manual de dumps de heap ou a captura automática de dumps de heap nos momentos especificados no conjunto de traçado de perfil.
Para analisar fugas:
Agora é possível modificar o código para excluir as referências que não mais são úteis, de forma que o coletor de lixo possa coletar objetos desnecessários. Trace novamente o perfil de seu aplicativo para verificar se a fuga foi corrigida e detectar fugas adicionais.
Para obter informações adicionais, leia Analisando Fugas de Memória.
O conjunto de traçado de perfil Memory Analysis (Análise de Memória), com o tipo de traçado de perfil Basic Memory Analysis (Análise Básica de Memória), permite coletar referências do objeto e visualizar dumps de heap. Note que é possível visualizar esses dados nas visualizações Object Reference Graph (Gráfico de Referência do Objeto), Object References (Referências do Objeto) e Object Details (Detalhes do Objeto), mas não é possível utilizá-los para gerar uma lista de candidatos à fuga.
Para investigar o uso de memória: