Localizando uma Fuga de Memória em uma Operação Orientada à Transação

Este procedimento pode ajudar a identificar uma fase em seu programa que crie novos objetos mas não os libera, evitando assim a sua remoção pela coleta de lixo. Por exemplo, seu programa cria uma janela de diálogo mas os objetos relacionados ao diálogo continuam suspensos depois de fechada a janela.  Os procedimentos gerais consistem no seguinte:

  1. Defina o perfil do aplicativo.  Colete referências de objeto antes da operação em questão e exiba a tabela Object References. Utilize o procedimento descrito em Identifying Memory Leaks.
  2. Execute a operação, colete novamente as referências do objeto e exiba a tabela para ver quais referências foram criadas.  
  3. Encerre a operação, colete as referências do objeto e exiba a tabela para ver quais referências permanecem nos objetos criados.

Coletando Referências do Objeto Antes e Após a Operação

  1. Para criar um dump das referências do objeto, utilize o botão Collect Object References  um botão com ícone estilizado. Os objetos que existiam logo antes do dump são os objetos antigos
  2. Em seguida, crie um dump de objetos e referências logo após o término da operação. Os objetos que foram criados e não puderam ser coletados no intervalo entre dois dumps de referências serão identificados como novos objetos na tabela Object References.

Exibindo os Dados de Definição de Perfil na Tabela Object References

  1. Abra a exibição Profiling Monitor.
  2. Selecione o agente.
  3. Clique com o botão direito do mouse e então selecione Open With > Object References. A tabela Object References é aberta.

Identificando Referências de um Objeto

Para identificar referências de um objeto:

  1. Abra a tabela Object References.
  2. Assegure-se de que opção Show Reference By tenha sido selecionada.
  3. Selecione a classe do objeto e expanda o item.
  4. Identifique as referências que impedem que novos objetos sejam recuperados.
 

Conceitos Relacionados
Visão Geral da Ferramenta de Definição de Perfis
Recursos de Definição de Perfil
Tabela Object References

Tarefas Relacionadas
Identificando Fugas de Memória 
Definindo o Perfil de um Aplicativo
Iniciando ou Anexando um Processo Java
Analisando Desempenho e Uso de Memória - Visão Geral


 
 

>