Partilhar via


Relatórios de exibição de threads no Visualizador de simultaneidade

Este artigo fornece informações sobre os relatórios na vista de Threads do Concurrency Visualizer.

Relatório de perfil de tempo de bloqueio

Os Relatórios de Perfil fornecem dados agregados de tempo de bloqueio para pilhas de chamadas que são específicas para cada categoria de bloqueio (por exemplo, "E/S" ou "Sincronização"). O relatório Preemption lista os processos que anteciparam o processo atual juntamente com o número de instâncias de preempção. Para criar o relatório de perfil de bloqueio, a ferramenta coleta chamadas de API de bloqueio e as acumula em uma árvore de pilhas de chamadas. Os dados mostrados nesses relatórios variam de acordo com o intervalo de tempo atual, por threads ocultos e pelos dois filtros a seguir que podem ser aplicados:

  • Se Just My Code estiver selecionado, somente quadros de pilha com código de usuário serão apresentados, além de um nível abaixo do código do usuário.

  • Se o valor de redução de ruído estiver definido, as pilhas agrupadas que têm menos do que a frequência especificada serão ignoradas.

    Expanda qualquer entrada da árvore de chamadas para encontrar a linha de código na qual o tempo de bloqueio é gasto. Para localizar a linha de origem de uma entrada, no menu de atalho, escolha Exibir fonte. Para localizar a linha de código que chamou este, no menu de atalho, escolha Exibir sites de chamada. Se apenas um ponto de chamada estiver disponível, o comando se conectará à linha de código destacada para o ponto de chamada. Se vários sites de chamada estiverem disponíveis, o comando abrirá uma caixa de diálogo na qual você poderá selecionar uma entrada e, em seguida, escolher o botão Ir para o código-fonte para localizar o site de chamada realçado. Muitas vezes, é mais útil visualizar o código-fonte do site de chamada que tem mais instâncias, mais tempo ou ambos.

Colunas de relatório de tempo de bloqueio

A tabela a seguir mostra as colunas para cada relatório de tempo de bloqueio.

Nome da coluna Description
Nome O nome da função para cada nível da pilha de chamadas.
Instâncias O número de instâncias da chamada de bloqueio para o período de tempo visível.
Tempo de bloqueio inclusivo O tempo total de bloqueio gasto para todas as pilhas que rolam até esse nível da árvore de pilha de chamadas. O número inclusivo é a soma do tempo de bloqueio exclusivo desta função com o tempo de bloqueio exclusivo de todos os seus nós filhos.
Tempo de bloqueio exclusivo O tempo total de bloqueio gasto, durante o qual esta função permanece no nível mais baixo da pilha de chamadas. Uma entrada única na pilha de chamadas que possui um tempo de bloqueio exclusivo elevado pode ser uma função de interesse.
Categoria de Espera da API Mostrado apenas para funções no nível mais baixo da pilha de chamadas. Quando a assinatura da chamada de bloqueio é reconhecida, o nome da API de bloqueio é fornecido. Se a assinatura não for reconhecida, as informações relatadas pelo kernel serão fornecidas.
Detalhes Nome totalmente qualificado da função. Isso inclui a contagem de linhas quando estiver disponível.

Synchronization

O relatório Sincronização mostra as chamadas responsáveis pelos segmentos que estão bloqueando na sincronização e os tempos de bloqueio agregados de cada pilha de chamadas. Para obter mais informações, consulte Tempo de sincronização.

Dormir

O relatório Sleep mostra as chamadas responsáveis pelo tempo de bloqueio que foi atribuído ao tempo passado em suspensão, e os tempos de bloqueio agregados de cada pilha de chamadas. Para obter mais informações, consulte Tempo de suspensão.

I/O

O relatório de E/S mostra as chamadas responsáveis pelos segmentos que estão bloqueados na E/S e os tempos de bloqueio acumulados de cada pilha de chamadas. Para obter mais informações, consulte Tempo de E/S (vista de threads).

Gestão da memória

O relatório Gerenciamento de memória mostra as chamadas responsáveis por segmentos que estão bloqueando as operações de gerenciamento de memória e os tempos de bloqueio agregados de cada pilha de chamadas. Para obter mais informações, consulte Tempo de gerenciamento de memória.

Preempção

O relatório de Preempção lista os processos que preemptaram o processo atual e o número de instâncias. Você pode expandir cada processo para visualizar as threads específicas que substituíram outras threads no processo atual e para ver uma análise das instâncias de preempção por thread. Esse relatório de bloqueio é menos acionável do que os outros porque a preempção normalmente é imposta ao seu processo pelo sistema operacional, não por um problema no seu código. Para obter mais informações, consulte Tempo de preempção.

Processamento da interface do usuário

O relatório Processamento da interface do usuário mostra as chamadas responsáveis pelo bloqueio de segmentos que estão bloqueando os blocos de processamento da interface do usuário e os tempos de bloqueio agregados de cada pilha de chamadas. Para obter mais informações, consulte Tempo de processamento da interface do usuário.

Relatório de Operações de Disco (Visualização de Threads)

O Relatório de Operações de Disco mostra as operações de E/S de disco nos canais de disco.

Para cada acesso ao disco que ocorre em nome do processo que está a ser analisado no momento na janela de tempo visível, essas informações são relatadas:

  • O nome e o PID do processo que executou o acesso ao disco

  • A ID do thread que acessou o disco

  • O nome do arquivo que foi acessado

  • O número de leituras por arquivo

  • O número de bytes lidos

  • A latência de leitura, em milissegundos

  • O número de gravações

  • O número de bytes gravados

  • A latência de gravação, em milissegundos

Relatório de Perfil de Execução

O Relatório de Perfil de Execução é um perfil de amostragem tradicional. As amostras são colhidas aproximadamente a cada milissegundo durante os períodos em que um thread está sendo executado em um núcleo lógico, e o Visualizador de Simultaneidade cria uma árvore de chamadas típica agrupando o conjunto acumulado de pilhas de amostras. Os dados nesta tabela podem ser afetados pelo intervalo de tempo atual, por tópicos ocultos, e também pelos filtros que podem ser aplicados.

  • Se Just My Code estiver selecionado, apenas as frames de pilha que contêm código de utilizador, mais um nível abaixo do código de utilizador, serão mostradas.

  • Se o valor de redução de ruído estiver definido, as pilhas agrupadas com frequência inferior à especificada serão filtradas do relatório

    A tabela a seguir mostra colunas no relatório.

Coluna Description
Nome O nome da função para cada nível da pilha de chamadas.
Amostras inclusivas Número total de amostras coletadas para todas as pilhas que se integram nesse nível específico da árvore de pilha de chamadas. O número inclusivo é a soma das amostras exclusivas desta função e dos contadores inclusivos de todos os seus nós filhos.
Amostras Exclusivas Número total de amostras coletadas para as quais esta função é o nível mais baixo da pilha de chamadas.
% Inclusive A porcentagem do total de amostras que é mostrada na coluna de amostras inclusivas. As percentagens são arredondadas para duas casas decimais.
% Exclusivo A percentagem das amostras totais que é mostrada na coluna das amostras exclusivas. As percentagens são arredondadas para duas casas decimais.
Detalhes Nome totalmente qualificado da função. Isso inclui a contagem de linhas quando estiver disponível.

Esta tabela de relatório pode ser vista na visualização Tempo de execução (Visualização de threads).

Relatório de marcadores

O Relatório de Marcadores lista os marcadores no período de tempo exibido. O movimento panorâmico ou o zoom, ou a ocultação de faixas, podem fazer com que os marcadores apareçam ou desapareçam. O relatório contém estas informações sobre cada marcador:

  • O tempo em que começou, relativo ao início do rastreio.

  • A sua duração. A duração é zero para sinalizadores e mensagens porque representam um instante.

  • A ID do thread que o gerou.

  • O provedor de Rastreamento de Eventos para Windows (ETW) que o originou.

  • A série de marcadores na qual foi baseada.

  • A categoria de eventos a que pertence.

  • O seu nível de importância.

  • O seu tipo (intervalo, sinalizador ou mensagem).

  • Uma descrição de alto nível do que representa

    Escolha o botão Exportar para salvar o Relatório de marcadores como um arquivo CSV. Você pode usar os dados no arquivo CSV com outros aplicativos ou ferramentas.

Observação

O Relatório de Marcadores pode exibir 1.000 marcadores. Para ver todos os marcadores, exporte o relatório completo para um arquivo CSV.

Relatório de resumo por tópico

Este gráfico de barras mostra a proporção de tempo que cada thread não oculto gasta em cada categoria de atividade durante o intervalo de tempo atualmente visível. "Execução" significa que o thread está em execução; todas as outras categorias significam que o thread está a aguardar por algo.