Tutorial: Analisando os Dados de Traçado de Perfil de um Processo Java
Objetivos
Analisar os dados coletados do traçado de perfil de um processo Java, utilizando as visualizações Traçado de Perfil e Log da perspectiva Traçado de Perfil e Log das seguintes formas:
- Identificar objetos e métodos que consomem a maior parte do tempo
- Identificar classes intensivas de memória
- Avaliar a concorrência do programa
- Localizar fugas de memória
- Procurar cada execução de um método como uma função de tempo
- Obter uma visão mais ampla do comportamento da execução como uma função de tempo
- Identificar encadeamentos ativos
- Identificar quando os encadeamentos estão ativos
- Identificar métodos chamados freqüentemente
- Avaliar a coleta de lixo
- Identificar fases diferentes da execução do programa
- Estudar chamadas de métodos diferentes
- Estudar o responsável pela chamada de um método
Tempo Necessário
1 hora
Antes de Iniciar
Antes de iniciar este tutorial, é necessário:
- Instalar a Eclipse Platform, incluindo as ferramentas Hyades.
- Tenha o arquivo de traçado de perfil de amostra (hcframe.jar) pronto para importação. O arquivo deve estar no seguinte diretório:
Hyades_install_dir\eclipse\plugins\org.eclipse.hyades.collection.framework_3.3.0
Descrição
Neste tutorial, você utilizará as diferentes visualizações Traçado de Perfil e Log para analisar o PerformanceExample.class de amostra. A amostra abre um quadro que contém dois
botões.
Você concluirá as seguintes tarefas:
- Abrindo a Perspectiva Traçado de Perfil e Log no Workbench
- Traçado de Perfil da Classe PerformanceExample
- Analisando as Informações de Traçado de Perfil
Para atualizar as visualizações enquanto o aplicativo está sendo monitorado, clique no botão Refresh Views
.
No menu Janela, clique em Abrir Perspectiva > Outra > Traçado de Perfil e Log.
Para definir o perfil da classe PerformanceExample, siga estas etapas:
- Clique no drop-down Perfil
e selecione Perfil. O diálogo Ativar Perfil é aberto.
- Dê um clique duplo em Aplicativo Java Externo para criar uma nova configuração.
- Vá para a guia Principal.
- Digite org.eclipse.hyades.test.collection.framework.PerformanceExample no campo Nome da Classe.
- Clique em Incluir Jar para incluir o jar que contém essa classe.
- Selecione Hyades_install_dir\eclipse\plugins\org.eclipse.hyades.collection.framework_3.3.0\hcframe.jar
- Clique em Abrir. O jar é incluído.
- Clique na guia Traçado de Perfil. Você pode especificar os critérios para traçado de perfil nessa guia.
- Clique na guia Visão Geral. Você pode especificar os conjuntos de filtros e o conteúdo nessa guia.
- Clique no botão Incluir para criar um novo conjunto de traçado de perfil. O assistente Incluir Conjunto de Traçado de Perfil é aberto.
- Na página Conjunto de Traçado de Perfil, especifique o nome para este conjunto de traçado de perfil e clique em Avançar.
- Na página Tipo de Traçado de Perfil, expanda o nó com o rótulo Análise de Memória, selecione Análise de Memória Básica e marque a caixa de opções a seu lado. Isso incluirá as informações relacionadas à memória na lista de tipos de informações que devem ser coletadas do aplicativo.
- Expanda o nó denominado Análise de Tempo, selecione Análise de Tempo de Execução e marque a caixa de opções ao lado dela.
Com essa opção selecionada, é possível utilizar as visualizações estatísticas para analisar informações relacionadas ao tempo. Você precisa coletar detalhes gráficos de execução para poder utilizar as visualizações Fluxo de Execução e Chamada de Método. Como o objetivo desta amostra é guiá-lo por todas as
visualizações de traçado de perfil, incluindo as visualizações Fluxo de Execução e Chamada de Método, selecione
Mostrar Detalhes Gráficos do Fluxo de Execução. Também clique na caixa de opções Coletar Classes de Limite Excluídas pelo Conjunto de Filtros e configure Profundidade da Classe de Limite como 1.
Clique em Avançar.
- A página Conjunto de Filtros fornece a capacidade de especificar o subconjunto de informações a ser analisado. Isso será útil se você deseja filtrar classes ou pacotes que não estejam dentro dos limites que gostaria de analisar.
Em Conteúdo do Conjunto de Filtros Selecionado, clique em Incluir para incluir classes ou pacotes para os quais deseja de coletar dados.
O diálogo Incluir Filtro é aberto.
- Para traçar o perfil deste pacote, digite org.eclipse.hyades.test.collection.framework.* como a Classe.
- Especifique o Nome do Método como * para incluir somente métodos relacionados a este exemplo.
- Clique em OK.O critério de filtro é incluído na lista de conteúdo.
- Para excluir outras classes existentes da lista de conteúdo do filtro, clique em Incluir sob a
coluna Regra para a classe e altere-o para Excluir.
- Clique em Concluir.
Um novo conjunto de traçado de perfil foi incluído na lista de conjuntos de traçado de perfil disponíveis
e ele está realçado como sendo o conjunto de traçado de perfil a ser utilizado.
- Clique na guia Limites. Essa guia controla a quantidade de dados coletada, com base no tempo decorrido ou no número de chamadas de métodos. Aceite os padrões.
- Clique na guia Destino. ProfileProject e Default Monitor são os recursos de traçado de perfil padrão e podem ser utilizados para armazenar dados desta sessão de traçado de perfil.
- Clique em Perfil.
- Os recursos de traçado de perfil requeridos são criados e o agente e o processo aparecem na visualização Monitor de Traçado de Perfil.
- Ative a visualização de Monitores selecionando Layout Distribuído, conforme mostrado na captura de tela a seguir. Isso permite ver o
monitor que agrupo os dados, bem como a máquina na qual o workbench está sendo
executado.

Exibe o Comportamento da Execução por um Período de Tempo
Você pode examinar a execução do aplicativo utilizando a visualização Fluxo de Execução.
A execução do programa inteiro é representada nesta visualização. Ela mostra o tempo no eixo vertical.
- Na visualização Monitor de Traçado de Perfil, selecione o monitor, clique com o botão direito do mouse e selecione Abrir com > Fluxo de Execução para
abrir a visualização Fluxo de Execução. A visualização Fluxo de Execução é aberta.
- Para examinar um determinado método, clique no nome do método (ou no espaço em branco abaixo dele) para selecioná-lo. Todos os métodos
chamados são então realçados em amarelo. O comprimento
vertical da área realçada é um indicativo do tempo base
para o método. O valor exato
do tempo base é exibido na linha de status.

Mover o cursor sobre qualquer objeto na visualização mostrará informações detalhadas na barra de status na parte inferior da janela.
- Utilize a ferramenta Aumentar Zoom
para ativar o cursor; em seguida, aponte e clique para ampliar uma área.
Nota: Para atualizar as visualizações enquanto o aplicativo estiver sendo monitorado, clique no botão Refresh Views
.
Identificando Encadeamentos Ativos
Na visualização Fluxo de Execução, cada encadeamento contém períodos de
atividade, que são identificados por um excesso de chamadas de método. Na representação
simbólica, o primeiro método chamado é uma tira e os métodos chamados em seguida
aparecem como tiras à direita. A seqüência das chamadas do método
progride da esquerda para a direita, as partes ativas do encadeamento são
identificadas por essa progressão da esquerda para a direita.
Quando você seleciona a seção inteira que descreve a seqüência de chamadas do método,
o tempo base que é gasto na execução dessa seqüência é exibido na linha de
status. Para ver o tempo base para o qual o encadeamento está ativo, localize a diferença entre os seguintes tempos:
- Aponte para a linha horizontal superior da área amarela selecionada para exibir
o tempo base correspondente na linha de status.
- Da mesma forma, aponte para a extremidade inferior da área amarela selecionada (que abrange
o período de execução quando a seqüência do método está em ação) e veja o
tempo base nesse 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 visualizaçõ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 visualização, clique no botão
Home.
Identificando Métodos Chamados Freqüentemente
Para identificar métodos chamados freqüentemente:
- Utilize a ferramenta Zoom
para ampliar uma seqüência de chamadas do método.
- Procure tiras da mesma cor dentro da área selecionada. Essas
tiras identificam métodos da mesma instância da classe que foram chamadas
várias vezes.
- Verifique o comprimento das tiras de cores diferentes (cada qual representa
um método). Quanto mais longa a tira, mais longo o tempo de execução
desse método.
Avaliando a Coleta de Lixo
Normalmente é impossível saber se a coleta de lixo ocorreu para um objeto realizando-se
a inspeção das tiras em um encadeamento do usuário nesta visualização.
Execute as seguintes etapas:
- O encadeamento de coleta de lixo é oculto por padrão. Ative-o selecionando Encadeamentos > GC sob o menu Contexto da visualização.
- Marque a coluna na extremidade esquerda desta visualização. Essa coluna é reservada
para o encadeamento da coleta de lixo e chama-se coluna GC
thread.
- Verifique se existe um único retângulo fino na coluna GC thread. O retângulo
provavelmente estará localizado bem abaixo da maioria das chamados do método no
objeto. Esse retângulo aparece na coluna GC thread sempre que ocorre uma coleta
de lixo para um objeto.
Identificando Fases da Execução do Programa
Identificando a Fase de Inicialização
- Utilize a ferramenta Aumentar Zoom
para ampliar a seqüência de chamadas do método na parte superior
do encadeamento principal.
- Observe os métodos que estão marcados como -init-.
- Clique para selecionar tal método. 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 Visualização Chamada de Método
- No Monitor de Traçado de Perfil, selecione um monitor ou um agente. Dê um clique com o botão direito do mouse e selecione Abrir com > Fluxo de Execução. A visualização Fluxo de Execução é exibida.
- Na tabela Fluxo de Execução, expanda o encadeamento que deseja examinar.
Selecione o método que deseja estudar, clique com o botão direito do mouse e, em seguida, selecione Mostrar Chamada de Método.
- Utilize a ferramenta Aumentar Zoom
para ampliar uma seção da visualização. As tiras são codificadas
com cores por classe e são conectadas por linhas horizontais que representam
chamadas do método.
- Selecione um método clicando no seu nome.
- Clique no botão Atualizar Visualizações
para assegurar que está visualizando 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 em Voltar
e
Avançar
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, permanecendo na
visualização Chamada de Método:
- Para visualizar o responsável pela chamada do método, clique no botão Mostrar Responsável pela Chamada
. 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 visualização. A linha de status exibe as informações sobre
o responsável pela chamada.
- Para ver o método que um método selecionado chama, clique no botão Mostrar Método
Chamado
.
(C) Copyright IBM Corporation 2000, 2005. Todos os Direitos Reservados.