Introdução: Detecção de Gargalo de Encadeamento

Os gargalos de encadeamento, como contenções e conflitos, podem tornar seu aplicativo lento ou interrompê-lo. A perspectiva de Criação de Perfis e Log inclui visualizações e ferramentas que o ajudam a detectar e resolver esses problemas de encadeamento.

As seguintes visualizações estão disponíveis para a detecção de gargalos de encadeamento:

Também é possível investigar gargalos de encadeamento utilizando probes personalizadas que podem ser projetadas em Probekit.

Tópico pai: Introdução à Determinação de Problemas de Tempo de Execução

Coletando Dados para Detecção de Gargalo de Encadeamento

Pré-requisitos:

Para coletar dados:
  1. Na guia Criação de Perfis da caixa de diálogo Perfil, selecione o conjunto de criação de perfis Análise de Encadeamento.
  2. Clique em Perfil para iniciar o aplicativo.
  3. Exercite as peças do seu aplicativo que você acha que estão tendo gargalos de encadeamento. Os dados de encadeamento são coletados e registrados em um recurso de criação de perfis de Análise de Encadeamento que é exibido no Navegador de Criação de Perfis. Você pode agora finalizar seu aplicativo.

Utilizando a Visualização de Encadeamento e a Visualização Diagrama de Seqüência UML2 para a Detecção de Gargalo de Encadeamento

A Visualização de Encadeamento exibe um histórico de execução de encadeamento para todos os encadeamentos em seu aplicativo e indica explicitamente as situações de conflito e de contenção. A visualização Interações do Objeto UML2 exibe a seqüência de chamadas durante a execução da criação de perfis.

Para detectar gargalos de encadeamento:
  1. Exiba a Visualização de Encadeamento: Clique com o botão direito do mouse no recurso de criação de perfis para os dados que você coletou e, a partir do menu pop-up, selecione Abrir Com > Visualização de Encadeamento.
  2. Na Visualização de Encadeamento, procure por setas verticais Setas indicando pedidos de travamento entre os encadeamentos. Uma seta aponta de um encadeamento que está pedindo a trava para um encadeamento que mantém a trava. Uma única seta indica uma contenção de encadeamento: um encadeamento está aguardando que o outro libere uma trava. Múltiplas setas indicam um conflito se elas mostrarem um padrão circular de pedido de trava, no qual cada encadeamento impede a execução do outro e vice-versa, porque estão aguardando que o próximo libere uma trava.
  3. Identifique os métodos que foram chamados no momento do gargalo. Para identificar os métodos, execute as seguintes etapas:
    1. Localize o nome da trava que o encadeamento está aguardando. Na visualização Encadeamento, pause o cursor sobre o encadeamento no local que está aguardando pela trava. O nome da trava, bem como o nome do encadeamento que está mantendo a trava, é exibido na dica de ferramenta.
    2. Clique com o botão direito do mouse no recurso de criação de perfis de Análise de Encadeamento e, no menu pop-up, selecione Abrir Com > Interações do Objeto UML2.
    3. Na lista de encadeamentos da visualização Encadeamento, selecione aquele que está mantendo a trava que você deseja investigar. A visualização Interações do Objeto UML2 mostra as interações de objeto do encadeamento selecionado, incluindo a trava e os pedidos pela trava.
    4. Posicione o indicador de Tempo Atual sobre a seta do pedido que você deseja investigar. Isso sincroniza a visualização Interações do Objeto UML2 e o recurso de criação de perfis de Pilha de Chamadas no Monitor de Criação de Perfis. O indicador de Tempo Atual está localizado, por padrão, na borda esquerda do gráfico Visualização de Encadeamento. Para movê-lo, agarre-o com o mouse.
  4. Exiba o código fonte responsável pela manutenção da trava, se ele estiver disponível. Para fazer isto, clique com o botão direito do mouse na chamada mais recente na Pilha de Chamadas do encadeamento que está mantendo a trava e, em seguida, selecione Abrir Origem no menu pop-up. O código de origem está disponível apenas se estiver gerenciando um perfil de projeto Java que esteja atualmente aberto na perspectiva Java. Agora você pode fazer alterações no seu código para resolver o gargalo.
  5. Gere um perfil de seu aplicativo novamente para verificar se o gargalo foi resolvido.

Para obter informações adicionais, leia Detectando Gargalos de Encadeamento.

Utilizando as Visualizações Fluxo de Execução e Tabela de Fluxo de Execução

Essas visualizações exibem, em formatos diferentes, os dados brutos nos quais a Visualização de Encadeamento se baseia.

Para utilizar essas visualizações:
  1. Para exibir a visualização Fluxo de Execução ou Tabela do Fluxo de Execução, selecione Janela > Mostrar Visualização > Outra . . .; expanda a entrada Criação de Perfis e Log na caixa de diálogo Mostrar Visualização e selecione a visualização que você deseja exibir.
  2. Na visualização Fluxo de Execução e Tabela de Fluxos de Execução, você pode subtrair o tempo atribuído à criação de perfis, selecionando Tempo Compensado no menu pop-up.

Termos de Uso | Feedback
(C) Copyright IBM Corporation 2000, 2004. Todos os direitos reservados.