Tutorial: Analisando os Dados de Definição de Perfil de um Processo Java
Objetivos
Analisar os dados coletados da definição de perfil de um processo Java, utilizando as exibições Profiling and Logging da perspectiva Profiling and Logging das seguintes maneiras:
- Identificar objetos e métodos que consomem mais tempo
- Identificar classes com memória intensiva
- Medir a simultaneidade do programa
- Localizar fugas de memória
- Procurar por cada execução de um método como uma função de
tempo
- Obter uma visão mais ampla sobre o comportamento de execução
como uma função de tempo
- Identificar encadeamentos ativos
- Identificar quando os encadeamentos estão ativos
- Identificar métodos chamados freqüentemente
- Medir a coleta de lixo
- Identificar diferentes fases da execução do programa
- Estudar diferentes métodos de chamadas
- Estudar o responsável pela chamada de um método
Tempo Necessário
1 hora
Antes de Iniciar
Antes de iniciar este tutorial, você precisa:
- Instalar a Plataforma Eclipse, incluindo as ferramentas Hyades.
- Possuir os arquivos de definição de perfil de amostra prontos
para importação. Eles devem estar em:
install directory\directory\eclipse\plugins\org.eclipse.hyades.collection.framework\src\org\eclipse\hyades\test\collection\framework
Descrição
Neste tutorial, você utilizará as diferentes exibições Profiling
and Logging para analisar a PerformanceExample.class de amostra. A
amostra abre um quadro contendo dois botões.
Você concluirá as seguintes tarefas:
- Abertura da Perspectiva Profiling and
Logging no Workbench
- Definição de Perfil da Classe
PerformanceExample
- Análise das Informações sobre a
Definição de Perfil
Para atualizar as exibições enquanto o aplicativo está sendo monitorado, clique no botão Refresh Views
.
Clique em Open a Perspective
> Other > Profiling and Logging
Execute as seguintes etapas:
- Clique em Profile
. O assistente Launch Java Process é aberto na página Class.
- Selecione: Select a class on the file system.
- Clique em Browse e então localize a classe de amostra,
que deve estar em:
install directory\eclipse\plugins\org.eclipse.hyades.collection.framework\bin\org\eclipse\hyades\test\collection\framework
Clique em Avançar.
A página Destination é aberta.
- ProfileProject e DefaultMonitor são os recursos de definição
de perfil padrão e podem ser utilizados para armazenar dados a
partir desta sessão de definição de perfil. Clique em Next. A página Profiling Filters é aberta.
- Aceite os filtros padrão. Clique em Avançar.
A página Profiling Options
é aberta.
- A caixa de opções para My application
uses too much memory já está selecionada, o que significa
que as informações relacionadas à memória serão
incluídas nos dados de definição de perfil que são
coletados a partir do aplicativo.
- Para receber as informações sobre execução,
selecione My application is too slow. Com esta opção
selecionada você pode utilizar as exibições estatísticas para
analisar as informações relacionadas ao tempo. Você precisa
coletar os detalhes do gráfico de execução para poder utilizar as
exibições Execution Flow e Method Invocation. Como o objetivo
desta amostra é guiá-lo através de todas as exibições de definição
de perfil, incluindo as exibições Execution Flow e Method
Invocation, clique em Show Details e então selecione Show
execution flow graphical details. Clique em Finish.
- Os recursos de definição de perfil requeridos são criados e o
agente e o processo aparecem na exibição Profiling Monitor.
- Ative a exibição de Folders, Monitors e Hosts e você
visualizará o monitor que agrupa seus dados bem como a máquina na qual você está
executando o workbench.
Exibir o Comportamento da Execução em um Período de Tempo
- Abra a exibição Execution Flow: selecione seu monitor, clique
com o botão direito do mouse e então selecione Open With >
Execution Flow.
- A execução de todo o programa está representada nesta exibição.
Ela mostra o tempo no eixo vertical, do lado direito.
- Clique no nome do método (ou no espaço em branco abaixo dele)
para selecioná-lo. Todos os seus métodos chamados, são então realçados em amarelo.
O comprimento vertical da área realçada é uma indicação do
tempo base para o método. O valor exato
do tempo base é exibido na linha de status.

- Utilize a ferramenta Zoom In
para ativar o cursor e então aponte e clique para aumentar uma área.

Analisando seu Processo Utilizando a Exibição Execution Flow
Abrindo a Exibição Execution Flow
- Na exibição Profiling Monitor, selecione o monitor ou o agente.
- Dê um clique com o botão direito do mouse e selecione Open With > Execution Flow.
A exibição Execution Flow é aberta.
Nota: Para atualizar as exibições enquanto o aplicativo está sendo monitorado, clique no botão Refresh Views
.
Identificando Encadeamentos Ativos
Na exibição Execution Flow, cada encadeamento contém períodos de
atividades, que são identificados por uma grande quantidade de
chamadas de métodos. Em uma representação simbólica, o primeiro
método chamado é uma faixa e os métodos que ele chama subseqüentemente aparecem como
outras faixas à sua direita. A seqüência das chamadas de métodos
avança da esquerda para direita; as partes ativas do encadeamento são
identificadas por essa progressão da esquerda para direita.
Quando você seleciona a seção inteira contornando a seqüência de
chamadas de métodos, o tempo base que é gasto executando esta
seqüência é exibido na linha de status. Para consultar o tempo base
para o qual o encadeamento está ativo, localize a diferença entre os seguintes tempos:
- Aponte para a parte superior da linha horizontal da área
amarela selecionada para visualizar o tempo base correspondente na linha de status.
- Da mesma forma, aponte para a borda inferior da área amarela
selecionada, (que cobre o período de execução quando a seqüência
do método está em ação) e visualize o tempo base neste ponto.
Dicas
- Se o gráfico estiver muito aglomerado e difícil de ler, amplie
para a área aglomerada.
- Quando um método é selecionado, todos os seus métodos chamados são realçados em
amarelo.
- Você pode arrastar e soltar as exibições no workbench, organizando-os
simultaneamente se necessário.
- Sempre que você apontar o cursor, o tempo base correspondente será indicado
na barra de status.
- Para reinicializar a tela da exibição, clique no botão
Home.
Identificando Métodos Chamados Freqüentemente
Para identificar métodos chamados freqüentemente:
- Utilize a ferramenta Zoom
para aumentar a seqüência de chamadas do método.
- Procure por faixas da mesma cor dentro da área selecionada.
Estas faixas identificam métodos da mesma instância de classe que foram
chamados várias vezes.
- Verifique o comprimento das faixas de cores diferentes (cada
uma representando um método). Quanto mais longa for a faixa mais
longo é o tempo de execução deste método.

Medindo a Coleta de Lixo
Normalmente, é impossível dizer que ocorreu a coleta de lixo para
um objeto inspecionando as faixas em um encadeamento de usuário nesta exibição.
Execute as seguintes etapas:
- Verifique a coluna mais à esquerda nesta exibição. Esta coluna
é reservada para o encadeamento da coleta de lixo e é denominada a
coluna de encadeamento GC.
- Verifique se há um único e estreito retângulo na coluna de encadeamento GC.
O retângulo provavelmente estará localizado bem abaixo do método
mais chamado no objeto. Este retângulo aparece na coluna de
encadeamento GC sempre que ocorreu uma coleta de lixo para um objeto.
Identificando Fases da Execução do Programa
Identificando a Fase de Inicialização
- Utilize a ferramenta Zoom In
para aumentar a seqüência de chamadas de método na parte superior do encadeamento principal.
- Observe os métodos que estão marcados como -init-
- Clique para selecionar um destes métodos. A barra de status é atualizada para indicar que o método ajuda na inicialização (atribuição de valores para variáveis utilizadas no aplicativo).
Analisando Métodos Utilizando a Exibição Method Invocation
- Em Profiling Monitor, selecione um monitor ou um agente. Dê um clique com o botão direito do mouse e selecione Open With > Execution Flow. A exibição Execution Flow aparece.
- Selecione o método que deseja estudar, clique com o botão
direito do mouse e então selecione Show Method Invocation.
- Utilize a ferramenta Zoom In
para aumentar uma seção da exibição. As faixas estão codificadas com cores por classe e
são conectadas por linhas horizontais que representam chamadas de métodos.
- Selecione um método clicando em seu nome.
- Clique no botão Refresh Views
para assegurar-se de que esteja exibindo as informações atuais.
- Observe a linha:

Esta linha exibe o nome do método, seguido de n/m, em que
n é a chamada que está sendo exibida atualmente de um total de
m chamadas.
- Clique Previous
e Next
para procurar todas as chamadas do método selecionado (ou cada mensagem para o objeto selecionado). A fração na barra de ferramentas altera para indicar qual
chamada você está visualizando.
Localizando o Responsável pela Chamada de um Método
Para localizar o que está chamando um método, siga estas etapas, continuando na exibição Method Invocation:
- Para visualizar o responsável pela chamada de um método, clique no botão Show Caller
. O método é exibido
junto com o responsável pela chamada à sua esquerda.
- Para visualizar detalhes adicionais sobre o responsável pela chamada do método de cada nova
chamada que exibir, posicione o cursor sobre a tira que representar
o responsável pela chamada na exibição. A linha de status exibe as informações sobre
o responsável pela chamada.
- Para consultar o método que um método selecionado chama, clique no botão Show Called Method
.
(C) Copyright IBM Corporation 2000, 2003. Todos os Direitos Reservados.