Relatórios da exibição Threads no Visualizador de Simultaneidade
Este artigo fornece informações sobre os relatórios na exibição Threads do Visualizador de Simultaneidade.
Relatório de perfil de tempo de bloqueio
Os Relatórios de Perfil fornecem dados de tempo de bloqueio agregados para pilhas de chamadas específicas para cada categoria de bloqueio (por exemplo, "E/S" ou "Sincronização"). O relatório de Preempção lista os processos que admiram preempção do processo atual junto com o número de instâncias de preempção. Para criar o relatório do perfil de bloqueio, a ferramenta coleta chamadas à API de bloqueio e acumula-as em uma árvore de pilhas de chamadas. Dados mostrados nesses relatórios variam pelo intervalo de tempo atual, por threads ocultos e os dois filtros a seguir que podem ser aplicados:
Se Apenas Meu Código for selecionado, serão apresentados somente os registros de ativação com código do usuário, mais um nível abaixo do código de usuário.
Se o valor de redução de Ruído for definido, pilhas agrupadas com uma frequência menor que a especificada serão ignoradas.
Expanda qualquer entrada de árvore de chamada para localizar a linha de código na qual o tempo de bloqueio é gasto. Para localizar a linha de origem para uma entrada, escolha Exibir Origem no menu de atalho. Para localizar a linha de código que chamou esta, no menu de atalho, escolha Exibir Sites de Chamada. Se apenas um site de chamada estiver disponível, o comando será conectado à linha de código realçada para o site de chamada. Se houver vários sites de chamada, o comando abrirá uma caixa de diálogo na qual você pode selecionar uma entrada e, em seguida, escolher o botão Ir para origem para localizar o site de chamada realçado. Geralmente, é mais útil para exibir código-fonte para o site de chamada que tem mais instâncias, mais tempo ou ambos.
Colunas do relatório de tempo de bloqueio
A tabela a seguir mostra as colunas para cada relatório de tempo de bloqueio.
Nome da coluna | Descrição |
---|---|
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 acumuladas para esse nível de árvore de pilha de chamadas. O número inclusivo é a soma do tempo de bloqueio exclusivo para essa função e o tempo de bloqueio exclusivo para todos os nós filho. |
Tempo de bloqueio exclusivo | O tempo total de bloqueio gasto durante o qual essa função é o nível mais baixo da pilha de chamadas. Uma entrada da pilha de chamadas exclusiva que tem um alto tempo de bloqueio exclusivo pode ser uma função de interesse. |
Categoria de API/espera | Mostrado somente para funções do nível mais baixo da pilha de chamadas. Quando a assinatura da chamada de bloqueio é reconhecida, o nome da API do bloqueio é fornecido. Se a assinatura não for reconhecida, as informações relatadas pelo kernel serão fornecidas. |
Detalhes | O nome totalmente qualificado da função. Isso inclui a contagem de linha, quando disponível. |
Sincronização
O relatório de sincronização mostra as chamadas responsáveis por segmentos que estão bloqueando na sincronização e os tempos de bloqueio agregados de cada pilha de chamadas. Para obter mais informações, confira Tempo de sincronização.
Modo de suspensão
O relatório de Suspensão mostra as chamadas responsáveis pelo tempo de bloqueio atribuído ao tempo gasto em suspensão e os tempos de bloqueio agregados de cada pilha de chamadas. Para saber mais, confira Tempo de suspensão.
E/S
O relatório de E/S mostra as chamadas responsáveis por segmentos que estão bloqueando E/S e os tempos de bloqueio agregados de cada pilha de chamadas. Para saber mais, veja Tempo de E/S (exibição de threads).
Gerenciamento de memória
O relatório de Gerenciamento de Memória mostra as chamadas responsáveis por segmentos que estão bloqueando operações de gerenciamento na memória e os tempos de bloqueio agregados de cada pilha de chamadas. Para saber mais, confira Tempo de gerenciamento de memória.
Preempção
O relatório de Preempção lista os processos que admiram preempção do processo atual junto com o número de instâncias. Você pode expandir cada processo para exibir os threads específicos que substituíram threads no processo atual e exibir uma divisão de instâncias de preempção por thread. Esse relatório de bloqueio é menos acionável que outros porque preempção normalmente é imposta sobre seu processo pelo sistema operacional e não por um problema no seu código. Para saber mais, confira Tempo de preempção.
Processamento de interface do usuário
O relatório de Processamento de interface do usuário mostra as chamadas responsáveis por bloquear segmentos que estão bloqueando em blocos de processamento de interface do usuário e os tempos de bloqueio agregados de cada pilha de chamadas. Para saber mais, confira Tempo de processamento de interface do usuário.
Relatório de operações de disco (exibição de threads)
O relatório de operações de disco mostra operações de E/S de disco em canais de disco.
Para cada acesso ao disco que ocorre em nome do processo que está sendo atribuído na janela de tempo visível no momento, 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 do perfil de execução
O relatório do perfil de execução é um perfil de amostragem tradicional. As amostras são colhidas aproximadamente a cada milissegundo durante períodos quando um thread está sendo executado em um núcleo lógico e a Visualização Simultânea cria uma árvore de chamada típica agrupando o conjunto acumulado de pilhas de amostra. Os dados nessa tabela podem ser afetados pelo intervalo de tempo atual e pelos threads ocultos e pelos seguintes filtros que podem ser aplicados:
Se Apenas Meu Código estiver selecionado, somente os registros de ativação com código do usuário, além de um nível abaixo do código de usuário, serão mostrados.
Se o valor de redução de ruído for definido, as pilhas agrupadas com menor frequência que a frequência especificada serão filtradas fora do relatório
A tabela a seguir mostra as colunas no relatório.
Coluna | Descrição |
---|---|
Nome | O nome da função para cada nível da pilha de chamadas. |
Amostras inclusivas | O número total de amostras que são coletadas para todas as pilhas que rolam até esse nível da árvore de pilha de chamadas. O número inclusivo é a soma das amostras exclusivas para essa função e dos contadores inclusivos para todos os seus nós filho. |
Amostras Exclusivas | O número total de amostras coletadas para o qual essa função é o nível mais baixo da pilha de chamadas. |
% Inclusivo | O percentual do total de amostras que é mostrada na coluna de amostras inclusivas. As porcentagens são arredondadas para duas casas decimais. |
% Exclusivo | O percentual do total de amostras que é mostrado na coluna de amostras exclusivas. As porcentagens são arredondadas para duas casas decimais. |
Detalhes | O nome totalmente qualificado da função. Isso inclui a contagem de linha, quando disponível. |
Esta tabela de relatório pode ser vista na exibição Tempo de execução (exibição de threads).
Relatório de marcadores
O Relatório de Marcadores lista os marcadores no período de tempo exibido. A movimentação panorâmica, a aplicação de zoom ou a ocultação de pistas pode fazer com que os marcadores apareçam ou desapareçam. O relatório contém informações sobre cada marcador:
A hora em que ele foi iniciado, com relação ao começo do rastreamento.
Sua duração. A duração é zero para mensagens e sinalizadores porque eles representam um instante.
A ID do thread que o gerou.
O provedor ETW (Acompanhamento de Eventos para Windows) que o gerou.
A série de marcadores da qual ele foi escrito.
A categoria de eventos à qual ele pertence.
Seu nível de importância.
Seu tipo (extensão, sinalizador ou mensagem).
Uma descrição detalhada do que ele 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 thread
Este gráfico de barras mostra a proporção de tempo que cada thread não oculta gasta em cada categoria de atividade durante o intervalo de tempo visível no momento. “Execução” significa que o thread está em execução; todas as outras categorias significam que o thread está aguardando algo.