Tutorial: Analisando Dados de Gerenciamento de Perfis

Objetivos

Analisar os dados coletados da definição de perfil de um processo Java, utilizando as visualizações Profiling and Logging da perspectiva Profiling and Logging das seguintes formas:

Tempo Necessário

1 hora

Antes de Iniciar

Antes de iniciar este tutorial, é necessário:

  1. Instalar a Plataforma Eclipse, incluindo a TPTP (Test and Performance Tools Platform).
  2. Ter o arquivo de traçado de perfil de amostra (hcframe.jar) pronto para importação. O arquivo deve estar no seguinte diretório:
    TPTP_install_dir\eclipse\plugins\org.eclipse.tptp.platform.collection.framework_4.0.0

Descrição

Neste tutorial, você utilizará as diferentes visualizações Profiling and Logging para analisar o PerformanceExample.class de amostra. A amostra abre um quadro que contém dois botões.

Você concluirá as seguintes tarefas:

  1. Abrindo a Perspectiva Profiling and Logging no Workbench
  2. Definindo o Perfil da Classe PerformanceExample
  3. Analisando as Informações de Definição de Perfil

Para atualizar as visualizações enquanto o aplicativo está sendo monitorado, clique no botão Refresh Views  um botão com ícone estilizado .

Abrindo a Perspectiva Profiling and Logging no Workbench

No menu Janela, clique em Abrir Perspectiva > Outra > Traçado de Perfil e Log.

Definindo o Perfil da Classe PerformanceExample

Para definir o perfil da classe PerformanceExample, siga estas etapas:

  1. Clique no drop-down Perfil  um Botão com Ícone Estilizado e selecione Perfil. O diálogo Launch Profile é aberto.
  2. Dê um clique duplo em External Java Application para criar uma nova configuração.
  3. Vá para a guia Main.
  4. Digite org.eclipse.hyades.test.collection.framework.PerformanceExample no campo Class name.
  5. Clique em Add Jar para adicionar o jar que contém essa classe.
  6. Selecione TPTP_install_dir\eclipse\plugins\org.eclipse.tptp.platform.collection.framework_4.0.0\hcframe.jar
  7. Clique em Open. O jar é incluído.
  8. Clique na guia Monitor. Você pode especificar os critérios para definição de perfil nessa guia.
  9. Na guia Monitor, expanda o nó identificado como Perfil Java, selecioneAnálise de Memória Básica e marque a caixa de opções ao seu lado. Isso incluirá as informações relacionadas à memória na lista de tipos de informações que devem ser coletadas do aplicativo.
  10. Selecione Análise do Tempo de Execução e marque a caixa de opções ao seu lado. 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 dessa amostra é guiá-lo por todas as visualizações de perfil, incluindo as visualizações Fluxo de Execução e Chamada de Método, ao selecionar Análise do Tempo de Execução, clique em Editar Opções e selecione Mostrar detalhes do gráfico do fluxo de execução no diálogo Editar Opções de Perfil. Também clique na caixa de opções Coletar classes de limite excluídas pelo conjunto de filtros e defina Profundidade da classe de limite como 1. Clique em Concluir.
  11. O Conjunto de Filtros de Perfil permite especificar o subconjunto de informações que você deseja analisar. Isso será útil se você deseja filtrar classes ou pacotes que não estejam dentro dos limites que gostaria de analisar.
    Selecione o coletor de dados Perfil Java e clique em Editar Opções; o diálogo Conjunto de Filtros será aberto. Em Conteúdo do conjunto de filtro selecionado, clique em Incluir para incluir classes ou pacotes para os quais você deseja coletar dados. O diálogo Adicionar Filtro é aberto.
  12. Para traçar o perfil desta classe, digite org.eclipse.hyades.test.collection.framework.* como a Classe.
  13. Especifique o Nome do Método como * para incluir somente os métodos relacionados a este exemplo.
  14. Clique em OK.O critério de filtro é incluído na lista de conteúdo.
  15. 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.
  16. Clique em Avançar para ir para a página Limites. Essa página controla a quantidade de dados coletada, com base no tempo decorrido ou no número de solicitações de método. Aceite os padrões. Clique em Concluir para fechar and e aplicar as alterações feitas.
  17. Clique na guia Destination. ProfileProject e Default Monitor são os recursos de definição de perfil padrão e podem ser utilizados para armazenar dados desta sessão de definição de perfil.
  18. Clique em Perfil.
  19. Os recursos de definição de perfil requeridos são criados e o agente e o processo aparecem na visualização Profiling Monitor. 
  20. Ative a visualização de Monitores selecionando Layout Distribuído, conforme é mostrado na captura de tela a seguir. Isso permite ver o monitor que agrupa os dados, bem como a máquina na qual o workbench está sendo executado.

    Monitor de Traçado de Perfil mostrando a hierarquia de recursos e o menu drop-down para marcar os recursos para torná-los ocultos

Analisando as Informações de Definição de Perfil

Exibe o Comportamento da Execução por um Período de Tempo

É possível examinar a execução do aplicativo utilizando a visualização e a tabela Fluxo de Execução. A execução de todo o programa é representada nessa visualização graficamente e em um formato de tabela. Na visualização Fluxo de Execução, o tempo é mostrado no eixo vertical. A tabela Fluxo de Execução é aberta além da visualização Fluxo de Execução e lista todos os encadeamentos e os métodos chamados por cada encadeamento.

  1. Na visualização Monitor de Traçado de Perfil, selecione seu 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.
  2. Para examinar um método específico, clique no método 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.

     Visualização Fluxo de Execução com Dois Métodos

    Mover o cursor sobre qualquer objeto na visualização mostrará informações detalhadas na barra de status na parte inferior da janela.

  3. Utilize a ferramenta Zoom In   um botão com ícone estilizado 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  um botão com ícone estilizado .

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:

  1. Aponte para a linha horizontal superior da área amarela selecionada para exibir o tempo base correspondente na linha de status.
  2. 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

Identificando Métodos Chamados Freqüentemente

Para identificar métodos chamados freqüentemente:

  1. Utilize a ferramenta Zoom  um botão com ícone estilizado para ampliar uma seqüência de chamadas do método.
  2. 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.
  3. 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:

  1. O encadeamento de coleta de lixo fica oculto por padrão. Ative-o selecionando Encadeamentos > GC no menu Contexto da visualização.
  2. 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.
  3. 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

  1. Utilize a ferramenta Zoom In  um botão com ícone estilizado para ampliar a seqüência de chamadas do método na parte superior do encadeamento principal.
  2. Observe os métodos que estão marcados com -init-.
  3. 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

  1. No Profiling Monitor, selecione um monitor ou um agente. Dê um clique com o botão direito do mouse e selecione Open With > Fluxo de Execução. A visualização Execution Flow é exibida.
  2. Selecione o método que deseja estudar, clique com o botão direito do mouse e, em seguida, selecione Show Chamada de Método.
  3. Utilize a ferramenta Zoom In  um botão com ícone estilizado 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.
  4. Selecione um método clicando no seu nome. 
  5. Clique no botão Refresh Views  um botão com ícone estilizado para assegurar que está visualizando as informações atuais.
  6. Observe a linha:
    linha de status exibindo o nome e os números do método 1/1

    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.
  7. Clique em Anterior  um botão com ícone estilizado e em Avançar  um botão com ícone estilizado para navegar 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:

  1. Para visualizar o responsável pela chamada do método, clique no botão Mostrar Responsável pela Chamada  um botão com ícone estilizado. O método é exibido junto com o responsável pela chamada à sua esquerda.
  2. 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.
  3. Para ver o método que é chamado por um método selecionado, clique no botão Mostrar Método Chamado  Um Botão com Ícone Estilizado