Compartilhar via


Exibição de núcleos

A exibição Núcleos mostra como a execução do thread foi mapeada para os núcleos do processador lógico (escolha Analisar>Visualizador Simultâneo para iniciar o visualizador de simultaneidade). Se você estiver escrevendo aplicativos de servidor, essa exibição poderá ajudá-lo a otimizar o desempenho do cache usando afinidade de thread ou gerenciamento de pool de threads. Ele também pode ajudá-lo a examinar casos em que o uso da afinidade de thread pode ter piorado o problema da migração entre núcleos. O Modo de Exibição de Núcleos tem duas partes, um gráfico e uma legenda.

O gráfico mostra núcleos lógicos no eixo y e tempo no eixo x. Cada thread no grafo tem uma cor exclusiva para que você possa acompanhar seu movimento entre núcleos ao longo do tempo. Você pode filtrar os threads neste grafo selecionando-os na área de legenda.

A área de legenda tem uma entrada para cada cor no grafo. Cada entrada mostra a cor e o nome do thread, o número de comutadores de contexto entre núcleos, o número total de opções de contexto e a porcentagem de comutadores de contexto que cruzam núcleos. A legenda é classificada pelo número de trocas de contexto entre núcleos, em ordem decrescente. Ele lista apenas os threads executados durante o intervalo de tempo exibido. A lista será atualizada se você ampliar ou aplicar zoom.

Legenda do Modo de Exibição de Núcleos

A legenda Visão de Núcleos identifica cada thread por cor e nome. Ele inclui colunas que mostram contagens para comutadores de contexto entre núcleos, o total de comutadores de contexto e a porcentagem de comutadores de contexto que cruzam núcleos. As linhas na legenda são classificadas pelo número de trocas de contexto entre núcleos de processamento, em ordem decrescente.

Você pode selecionar linhas na legenda para filtrar os threads exibidos na linha do tempo. Somente os threads selecionados são mostrados na linha do tempo. Se nenhuma linha estiver selecionada, todas as linhas serão mostradas na linha do tempo.

Trocas de contexto entre núcleos têm maior custo de sobrecarga e impacto no desempenho do que trocas que permanecem no mesmo núcleo lógico. Durante as trocas de contexto, os registros do processador são salvos e restaurados, o código do kernel do sistema operacional é executado, as entradas do buffer de tradução lookaside são recarregadas e o pipeline do processador é descarregado. As opções de contexto entre núcleos podem ser ainda mais caras do que outras opções de contexto porque os dados de cache não são válidos para esse thread em outro núcleo. Por outro lado, se um thread for alternado para o núcleo em que ele foi executado anteriormente, é provável que os dados úteis ainda estão no cache. Quando as mudanças de contexto entre núcleos tiverem sido aumentadas por tentativas de gerenciar a afinidade de threads e o desempenho estiver degradado, considere corrigir esse problema. Comece eliminando a afinidade de thread e observe o comportamento entre núcleos resultante.

A tabela a seguir descreve os elementos da legenda.

Elemento Definition
Nome do tópico Mostra a cor do tópico na linha do tempo dos tópicos anteriores e o nome desse tópico.
Comutadores de contexto entre núcleos O número de opções de contexto para um thread que também mudou de um núcleo lógico para outro. Ele não diferencia entre as trocas de contexto entre núcleos que cruzam de uma pastilha de processador para outra em comparação com aquelas que permanecem na mesma pastilha.
Total de Trocas de Contexto O número total de trocas de contexto para um determinado encadeamento durante o período de amostragem. Sempre que uma thread altera o contexto (por exemplo, da execução para a sincronização), uma troca de contexto é contada.
Porcentagem de trocas de contexto entre núcleos Computado como uma porcentagem dividindo o número de opções de contexto entre núcleos pelo número de opções de contexto totais. Quanto maior esse percentual, maior o efeito geral da sobrecarga de comutação de contexto entre núcleos no desempenho deste tópico específico.

Linha do tempo de Visualização de Cores

Cada linha da linha temporal representa um núcleo lógico de processador no sistema analisado. Para cada linha, o eixo horizontal mostra qual thread estava em execução em um núcleo lógico em um determinado momento. Você pode posicionar o cursor sobre uma cor de interesse em uma linha do tempo para exibir uma dica de ferramenta que identifica o tópico. Para ajudar na identificação do thread, a legenda na parte inferior da janela mostra o que cada cor representa. Use a ferramenta Zoom para ampliar e reduzir, clicando e arrastando ou pressionando CTRL e movendo a roda do mouse. A consistência de zoom é mantida quando você alterna entre a Visualização de Núcleos e a Visualização de Threads.

Exibir núcleos lógicos

Cada nome de canal representa um dos núcleos lógicos existentes no sistema com perfil. A nomenclatura incrementa a partir de 0 até o número total de núcleos lógicos. Por exemplo, um sistema de quatro núcleos contará do núcleo lógico 0 ao núcleo lógico 3.

Ferramenta de Zoom de Visualização de Núcleos

O controle zoom é um controle deslizante que permite ampliar e reduzir a linha do tempo para que você possa se concentrar em áreas de interesse específico. Esse controle aproxima o centro da visualização atual, portanto, ajuste-a antes de aproximar.

Outras maneiras de ampliar

  • Ampliando: arraste para selecionar uma área na visualização de linha do tempo. Quando você libera o botão do mouse, a exibição da linha do tempo amplia o intervalo selecionado.

  • Ampliando e reduzindo: passe o mouse sobre a linha do tempo e pressione Ctrl enquanto move a roda do mouse.