Identificando Métodos Intensivos de Recursos
Um método pode ser um candidato à otimização se:
- Faz chamadas mais freqüentemente do que necessário. O desempenho pode ser aperfeiçoado
encontrando-se formas de efetuar menos chamadas ou de pequenas melhorias em um
método que seja utilizado com freqüência.
- Tem um tempo de execução longo. Alternativamente, o desempenho pode ser aperfeiçoado quando identificadas
classes que consomem a maior parte do tempo de execução e os métodos que passam um
tempo longo na pilha são otimizados. Tais métodos podem não necessariamente estar em execução, mas
ao contrário, estar chamando outros métodos
para tarefas como classificação ou delegação.
Para localizar métodos chamados freqüentemente, proceda da seguinte forma:
- 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.
- Na exibição 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 é aberta.
- Clique no botão Zoom In
para ampliar
uma seqüência de chamadas do método.
- Dê um clique com o botão direito do mouse e selecione
Detect All Repetitions. Você verá Xs aparecendo onde existem
padrões repetidos.
- 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:
- 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.
- Observe o comprimento de cada tira do método. Quanto mais longa a tira, mais longo o tempo
de execução.
- 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.
- 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.
- Na barra de ferramentas
local, clique em Show 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.
- 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:
- Abra a exibição Execution Flow: No menu pop-up do monitor na exibição
Profiling Monitor, selecione Open With > Execution Flow.
- Essa exibição, como a exibição Method Invocation, tem uma escala de linha vertical
ao longo do lado direito.
- Utilize o botão Zoom In
para ampliar uma determinada
seção da exibição para realçar o método que deseja examinar.
- 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.
- Utilize o 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
(C) Copyright IBM Corporation 2000, 2003. Todos os Direitos Reservados.