Partilhar via


Exibição de núcleos

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

O gráfico mostra os núcleos lógicos no eixo Y e o tempo no eixo X. Cada thread no gráfico tem uma cor exclusiva para que seja possível acompanhar seu movimento entre os núcleos ao longo do tempo. É possível filtrar os threads nesse gráfico selecionando-os na área de legenda.

A área de legenda tem uma entrada para cada cor no gráfico. Cada entrada mostra a cor e o nome do thread, o número de alternâncias de contexto de núcleo cruzado, o número total de alternâncias de contexto e o percentual de alternâncias de contexto que cruzam núcleos. A legenda é classificada pelo número de alternâncias de contexto de núcleo cruzado, em ordem decrescente. Ela lista apenas os threads executados durante o intervalo de tempo exibido. A lista será atualizada se você aplicar zoom ou movimento panorâmico.

Legenda da exibição de núcleos

A legenda da Exibição de Núcleos identifica cada thread pela cor e pelo nome. Ela inclui colunas que mostram contagens de alternâncias de contexto de núcleo cruzado, o total de alternâncias de contexto e o percentual de alternâncias de contexto que cruzam núcleos. As linhas na legenda são classificadas pelo número de alternâncias de contexto de núcleo cruzado, em ordem decrescente.

É possível selecionar linhas na legenda para filtrar os threads exibidos na linha do tempo. Apenas 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.

Alternâncias de contexto de núcleo cruzado são mais caras em sobrecarga e desempenho do que alternâncias que permanecem no mesmo núcleo lógico. Durante alternâncias de contexto, os registros do processador são salvos e restaurados, o código de kernel do sistema operacional é executado, as entradas de buffer à parte de translação são recarregadas e o pipeline do processador é liberado. Alternâncias de contexto de núcleo cruzado podem ser ainda mais caras do que outras alternâncias de contexto, pois os dados do cache não são válidos para esse thread em outro núcleo. Por outro lado, se um thread tiver alternância de contexto para o núcleo em que foi executado anteriormente, será provável que os dados úteis ainda estejam no cache. Quando as alternâncias de contexto de núcleo cruzado aumentarem devido a tentativas de gerenciar a afinidade de thread e o desempenho for prejudicado, considere a possibilidade de resolver esse problema. Comece eliminando a afinidade de thread e, em seguida, observe o comportamento de núcleo cruzado resultante.

A tabela a seguir descreve os elementos da legenda.

Elemento Definição
Nome do Thread Mostra a cor do thread na linha do tempo dos núcleos anteriores e o nome do thread.
Opções de contexto de núcleo cruzado O número de alternâncias de contexto para um thread que também mudou de um núcleo lógico para outro. Ele não diferencia entre alternâncias de contexto de núcleo cruzado que cruzam de uma matriz do processador para outra e aqueles que permanecem na mesma matriz.
Opções de Contexto Total O número total de alternâncias de contexto de determinado thread durante o período de amostragem. Sempre que um thread muda de contexto (por exemplo, de execução para sincronização), uma alternância de contexto é contada.
Porcentagem de alternâncias de contexto que cruzam núcleos Calculado como um percentual, dividindo o número de alternâncias de contexto de núcleo cruzado pelo número do total de alternâncias de contexto. Quanto maior esse percentual, maior será o efeito geral da sobrecarga de alternâncias de contexto de núcleo cruzado sobre o desempenho desse thread específico.

Linha do tempo da exibição de núcleos

Cada linha na linha do tempo representa um núcleo de processador lógico no sistema com perfil sendo criado. Para cada linha, o eixo horizontal mostra qual thread estava sendo executado em um núcleo lógico em um determinado ponto no tempo. É possível focalizar em uma cor de interesse em uma linha do tempo para retornar uma dica de ferramenta que identifica o thread. 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 ao mudar entre a Exibição de Núcleos e Exibição de Threads.

Núcleos lógicos da Exibição de Núcleos

Cada nome de canal representa um dos núcleos lógicos que existem no sistema de perfil. A nomenclatura conta de 0 ao número total de núcleos lógicos. Por exemplo, um sistema de quatro núcleos será contado do núcleo lógico 0 ao núcleo lógico 3.

Ferramenta de zoom da exibição de núcleos

O controle de zoom é um controle deslizante que permite ampliar e reduzir a linha do tempo para que seja possível focar em áreas de interesse específico. Esse controle amplia o centro da exibição atual, então, ajuste a exibição antes de aplicar o zoom.

Outras formas de aplicar zoom

  • Aumentar o zoom: arraste para selecionar uma área na exibição da linha do tempo. Ao soltar o botão do mouse, a exibição da linha do tempo ampliará o intervalo selecionado.

  • Ampliar e reduzir o zoom: focalize a linha do tempo e, em seguida, pressione Ctrl enquanto move a roda do mouse.