Mentor de Ferramentas: Determinação do Perfil do Uso de Memória no Código Gerenciado Usando o Rational Purify® e o Rational PurifyPlus (Windows)
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 aplicativo de código gerenciado. Use este mentor de ferramentas durante a execução do Microsoft .NET Framework no Microsoft Windows.
O PurifyPlus é 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 o sistema de Ajuda on-line do Purify.
Informações relacionadas no Rational Unified Process:
Visão Geral
O Purify ajuda a identificar problemas de memória no código gerenciado. Com o Purify, você pode 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 de um aplicativo de código gerenciado, é necessário:
- Executar o aplicativo de código gerenciado no Purify e capturar uma imagem após sua inicialização
- Executar o código que pode estar ocasionando o vazamento de memória e capturar outra imagem
- Comparar as duas imagens para identificar métodos que possam estar ocasionando o vazamento de memória
- Examinar os métodos suspeitos para detectar objetos desnecessários
O primeiro passo na purificação do aplicativo de código gerenciado é avaliar o desempenho do uso de memória 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 do tempo de execução de linguagem comum (CLR) .NET 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 (managed code)
- filter manager (managed code)
O segundo passo na purificação do programa de código gerenciado é 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.
O terceiro passo na purificação do programa de código gerenciado é 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 mais informações 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 não ela não for mais necessária.
Dica: Você pode usar o Purify Filter Manager para concentrar-se 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
O quarto passo na purificação do programa de código gerenciado é 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 começar com 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
|