Finalidade

Este mentor de ferramentas descreve como usar o Rational Purify para determinar o perfil do uso de memória e aprimorar esse uso em um applet, arquivo de classe, arquivo JAR ou arquivo executável Java — todos conhecidos como "programas Java". Use-o durante a execução do Microsoft Windows Microsoft Windows.

O Purify Plus é um produto da Rational que oferece a funcionalidade Purify.  

Para saber mais sobre o Purify, leia o manual Getting Started da família de produtos PurifyPlus (versão para Windows). 

Para obter informações passo a passo sobre como usar o Purify, consulte a Ajuda on-line do Purify.

Informações relacionadas no Rational Unified Process: 

Visão Geral

O Purify ajuda a identificar problemas na memória Java. Ao usar o Purify, você poderá determinar:
  • a quantidade de memória usada pelo programa
  • a quantidade de memória nova que o programa consume para um conjunto específico de ações 
  • que métodos e objetos do programa estão consumindo tanta memória 
  • que objetos poderão estar evitando que objetos desnecessários sejam coletados como lixo 
  • onde seria aconselhável efetuar obrigatoriamente uma coleta de lixo a fim de aprimorar o desempenho

Passos na Ferramenta

Para usar o Purify para determinar o perfil do uso de memória Java, é necessário:

  1. Executar o programa Java no Purify e capturar uma imagem após sua inicialização
  2. Executar o código que pode estar ocasionando o vazamento de memória e capturar outra imagem
  3. Comparar as duas imagens para identificar métodos que possam estar ocasionando o vazamento de memória
  4. Examinar os métodos suspeitos para detectar objetos desnecessários

1. Executar o programa Java no Purify e capturar uma imagem após sua inicialização  

O primeiro passo na purificação do programa Java é submeter o uso da memória a uma avaliação de desempenho depois que a inicialização do programa estiver concluída e ele estiver em um estado estável.

Inicie o Purify e execute o programa a partir da interface do Purify. O Purify interceptará mensagens relacionadas ao uso da memória provenientes da Máquina Virtual Java (JVM) e usará essas mensagens para determinar o perfil da memória que o programa está utilizando. Depois que o programa tiver concluído seus procedimentos de inicialização, utilize o comando de imagem do Purify para avaliar o desempenho do uso da memória no momento. A imagem é a base para investigar como o programa utiliza a memória à medida que é executado.

   Para obter mais informações, procure o seguinte no índice da Ajuda on-line do Purify:

  • running programs 
  • data browser 

2. Executar o código que pode estar ocasionando o vazamento de memória e capturar outra imagem  

O segundo passo na purificação do programa Java é capturar um registro da memória utilizada pelo programa à medida que ele é executado.

Com o programa em execução no Purify, execute as partes do programa que você supõe que estejam ocasionando o vazamento de memória. O Purify exibirá um gráfico de alocação de memória que mostra as variações no uso atual da memória. Quando observar um aumento da memória alocada, capture outra imagem.

3. Comparar as duas imagens para identificar métodos que possam estar ocasionando o vazamento de memória  

O terceiro passo na purificação do programa Java é identificar outros métodos responsáveis pelo vazamento de memória.

Depois de capturar a segunda imagem do uso da memória pelo programa, saia do programa e compare (ou "diferencie") as duas imagens. O Purify exibirá um gráfico de chamadas mostrando os métodos responsáveis pelas maiores parcelas de memória alocadas enquanto o programa estava em execução, entre o momento de captura da primeira imagem e o da segunda. Você poderá concentrar-se nos métodos contidos no gráfico de chamadas para investigá-los mais detalhadamente.

O Purify também apresenta os dados de uso da memória para cada método em uma Visão Function List. Você poderá classificar a lista em qualquer uma das colunas de dados e clicar duas vezes em qualquer método da lista para exibir informações mais detalhadas em uma janela Function Detail.

Se o total de memória alocado para um método for inesperadamente elevado, examine o código-fonte e revise-o, caso necessário, para liberar memória quando ela não for mais necessária.

Dica: Você pode usar o Purify Filter Manager para concentrar a determinação do perfil da memória em métodos e arquivos de classes específicos.

 Para obter mais informações, procure os seguintes tópicos no índice da Ajuda on-line do Purify: 

  • comparing runs
  • call graph 
  • function list view 
  • function detail window
  • filtering data

4. Examinar os métodos suspeitos para detectar objetos desnecessários  

O quarto passo na purificação do programa Java é identificar objetos desnecessários.

Depois que você tiver identificado os métodos que parecem ter problemas de memória, analise-os no nível do objeto. Procure os objetos que deveriam ser, mas não foram, liberados e coletados como lixo, talvez porque outros objetos mantenham referências desnecessárias a eles. 

Você poderá examinar os objetos em uma janela Function Detail do método, que lista todos os objetos alocados pelo método. Também é possível usar a guia Object List View da janela Data Browser para exibir e classificar todos os objetos alocados no momento. 

Para obter todos os detalhes sobre um objeto específico, use a janela Object Detail. Essa janela contém um gráfico mostrando todos os objetos na "árvore de referências" à qual o objeto pertence, assim como informações sobre o objeto como, por exemplo, seu tamanho e a quantas coletas de lixo ele sobreviveu. Essa janela também exibe uma descarga do objeto que poderá conter referências feitas por ele a outros objetos. 

Observe que não é possível examinar objetos a partir de um conjunto de dados "diff"; é necessário usar uma imagem ou um conjunto de dados agregado. 

Para obter mais informações, procure o seguinte no índice da Ajuda on-line do Purify: 

  • object list view  
  • object detail window  

Copyright  (c) 1987 - 2001 Rational Software Corporation


Exibir o Rational Unified Process usando quadros

Rational Unified Process