Identificando Métodos Intensivos de Recursos

Um método pode ser um candidato à otimização se:

Para localizar métodos chamados freqüentemente, proceda da seguinte forma:

  1. Assegure que a coleção de informações sobre fluxo de execução tenha sido ativada, o que pode ser feito ao iniciar ou anexar ao aplicativo que terá o perfil definido.   Selecione a opção de definição de perfis, My application is too slow e em seguida, a partir da opção Details, selecione Show Execution flow graphical details
  2. Na exibição Profiling Monitor, selecione um monitor ou um agente.
  3. Dê um clique com o botão direito do mouse e selecione Open With > Execution Flow. A exibição Execution Flow é aberta.
  4. Clique no botão Zoom In ícone botão zoom in para ampliar uma seqüência de chamadas do método.
  5. Dê um clique com o botão direito do mouse e selecione Detect All Repetitions. Você verá Xs aparecendo onde existem padrões repetidos.   
  6. Amplie essas áreas para ver os padrões repetidos e o número de repetições do método.  

Para localizar métodos com tempo de execução longo, proceda da seguinte forma:

  1. Ative ou conecte um processo a um determinado recurso e abra a exibição Execution Flow. 
    Nota:
    Você pode abrir a exibição a partir do agente, do processo, do host ou do monitor. Saiba no entanto que as informações desses recursos são muito diferentes. Por exemplo, a exibição Execution Flow do agente mostra a execução do JVM (Java Virtual Machine) específico ao qual o agente está conectado. Em contrapartida, a seleção da exibição a partir do monitor mostra a execução de todos os JVMs que possuem agentes de definição de perfil sob o monitor selecionado.
  2. Observe o comprimento de cada tira do método. Quanto mais longa a tira, mais longo o tempo de execução.
  3. Para ver um método detalhadamente, abra a exibição Method Statistics, selecione o método, clique com o botão direito do mouse e selecione Show Method Invocation.
  4. Para ver o tempo de execução do responsável pela chamada do método, clique com o botão direito do mouse e selecione Show Method Invocation. Esta exibição mostra uma representação do mesmo método que da linha identificada por um rótulo.
  5. Na barra de ferramentas local, clique em Show Caller ícone botão caller para ver os responsáveis pela chamada do método selecionado na exibição. Cada vez que você clica nesse botão, é exibido um método acima na seqüência de chamada.
  6. Selecione um método. O comprimento vertical da área selecionada indica o tempo base para o método. Você pode determinar o tempo de execução deste método marcando a escala de tempo vertical no lado direito da exibição. A linha de status apresenta o tempo cumulativo para o método.

Para obter uma visão ampla do tempo de execução, proceda da seguinte forma:

  1. Abra a exibição Execution Flow: No menu pop-up do monitor na exibição Profiling Monitor, selecione Open With > Execution Flow.
  2. Essa exibição, como a exibição Method Invocation, tem uma escala de linha vertical ao longo do lado direito. 
  3. Utilize o botão Zoom In ícone botão zoom in para ampliar uma determinada seção da exibição para realçar o método que deseja examinar.
  4. Clique no nome do método (ou no espaço em branco abaixo dele) para selecioná-lo. 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.
  5. Utilize o botão Zoom Out ícone botão zoom out para exibir uma parte maior do programa inteiro enquanto ainda é possível ver a área realçada do método (ou seja, você ainda consegue ver a área retangular amarela). Mesmo que a representação da execução inteira não seja vista, você ainda conseguirá determinar quanto tempo este método consome com relação ao programa todo.

Conceitos relacionados
Visão Geral da Ferramenta de Definição de Perfis
Exibição e Tabela Execution Flow
Exibições Statistical

Tarefas Relacionadas
Definindo o Perfil de um Aplicativo
Iniciando ou Anexando um Processo Java
Estudando a Coleta de Lixo
Analisando Desempenho e Uso de Memória - Visão Geral