Partilhar via


Referência: exibições do Windows Performance Analyzer

As ferramentas do C++ Build Insights estão disponíveis no Visual Studio 2019 e posteriores. Para ver a documentação dessas versões, defina o controle seletor de Versão do Visual Studio para este artigo do Visual Studio 2019 ou posteriores. Ele é encontrado na parte superior da tabela de conteúdo nesta página.

Este artigo fornece detalhes sobre cada uma das exibições do C++ Build Insights disponíveis no Windows Performance Analyzer (WPA). Use esta página para localizar:

  • descrições da coluna de dados; e
  • predefinições disponíveis para cada visualização, incluindo o uso pretendido e o modo de visualização preferido.

Se você não estiver familiarizado com o WPA, recomendamos que você primeiro se familiarize com os conceitos básicos do WPA para o C++ Build Insights.

Explorador de Compilação

A visualização do Gerenciador de Compilação é usada para:

  • diagnosticar problemas de paralelismo,
  • determinar se o tempo de compilação é dominado por análise, geração de código ou vinculação e
  • identificar gargalos e atividades de compilação extraordinariamente longas.

Colunas de dados de exibição do Gerenciador de Compilação

Nome da Coluna Descrição
BuildTimelineDescription Uma descrição textual na linha do tempo em que a atividade ou propriedade atual ocorre.
BuildTimelineId Um identificador baseado em zero para a linha do tempo em que a atividade ou propriedade atual ocorre.
Componente O componente que está sendo compilado ou vinculado quando o evento atual foi emitido. O valor dessa coluna é <Invocação X Info> quando nenhum componente está associado a esse evento. X é um identificador numérico exclusivo para a invocação que está sendo executada no momento em que o evento foi emitido. Esse identificador é o mesmo que o da coluna InvocationId para esse evento.
Contagem O número de atividades ou propriedades representadas por essa linha de dados. Esse valor é sempre 1 e só é útil em cenários de agregação quando várias linhas são agrupadas.
ExclusiveCPUTime A quantidade de tempo de CPU em milissegundos usada por esta atividade. O tempo gasto em atividades filhas não está incluído nesse valor.
ExclusiveDuration A duração em milissegundos da atividade. A duração das atividades filhas não está incluída nesse valor.
InclusiveCPUTime A quantidade de tempo de CPU em milissegundos usados por essa atividade e todas as atividades filhas.
InclusiveDuration A duração de milissegundos dessa atividade, incluindo todas as atividades filhas.
InvocationDescription Uma descrição textual da invocação em que esse evento ocorreu. A descrição inclui se foi cl.exe ou link.exe e um identificador de invocação numérico exclusivo. Se aplicável, ela inclui o caminho completo para o componente compilado ou vinculado durante a invocação. Para invocações que não criam nenhum componente ou para as que criam vários componentes, o caminho está em branco. O identificador de invocação é igual ao da coluna InvocationId.
InvocationId Um identificador numérico exclusivo para a invocação em que esse evento ocorreu.
Nome O nome da atividade ou propriedade representada por esse evento.
Hora Um carimbo de data/hora que identifica quando o evento ocorreu.
Ferramenta A ferramenta em execução quando esse evento ocorreu. O valor dessa coluna é CL ou Link.
Tipo O tipo do evento atual. Esse valor é Atividade ou Propriedade.
Valor Se o evento atual for uma propriedade, esta coluna conterá seu valor. Essa coluna fica em branco quando o evento atual é uma atividade.

Predefinições de visualização do Gerenciador de compilação

Nome da predefinição Modo de exibição preferencial Como usar
Estatísticas de Atividade Gráfico / Tabela Use essa predefinição para exibir estatísticas agregadas para todas as atividades do Gerenciador de compilação. No modo de tabela, conte rapidamente se a compilação é dominada pela análise, geração de código ou pelo vinculador. As durações agregadas para cada atividade são classificadas em ordem decrescente. Veja os detalhes expandindo o nó superior e localize facilmente quais invocações levam mais tempo para essas atividades principais. Se quiser, você pode ajustar as configurações do WPA para mostrar médias ou outros tipos de agregações. No modo gráfico, veja quando cada atividade está ativa durante a compilação.
Invocações Gráfico Pesquise rolando uma lista de invocações na visualização de gráfico classificada por hora de início. Você pode usá-la junto com o modo de exibição CPU (amostra) para encontrar invocações que se alinham com zonas de utilização de CPU baixas. Detectar problemas de paralelismo.
Propriedades de Invocação Tabela Localize rapidamente informações importantes sobre um determinado compilador ou invocação do vinculador. Determine a versão, diretório de trabalho ou a linha de comando completa usada para invocar.
Linhas do tempo Gráfico Veja um gráfico de barras de como sua compilação foi paralelizada. Identifique problemas de paralelismo e gargalos rapidamente. Configure o WPA para atribuir significados diferentes às barras de acordo com suas necessidades. Escolha descrições de invocação como a última coluna agrupada para exibir um gráfico de barras codificados por cores de todas as suas invocações. Ele ajuda você a identificar rapidamente os culpados por consumirem tempo. Em seguida, amplie e escolha o nome da atividade como a última coluna agrupada para ver as partes mais longas.

Arquivos

A exibição Arquivos é usada para:

  • determinar quais cabeçalhos são incluídos com mais frequência, e
  • ajudar você a decidir o que incluir em um cabeçalho pré-compilado (PCH).

Colunas de dados de visualização de arquivos

Nome da Coluna Descrição
ActivityName A atividade em andamento quando esse evento de arquivo foi emitido. Atualmente, esse valor é sempre Analisando.
BuildTimelineDescription *
BuildTimelineId *
Componente *
Contagem *
Profundidade A posição baseada em zero na árvore de inclusão onde esse arquivo é encontrado. A contagem começa na raiz da árvore de inclusão. Um valor de 0 normalmente corresponde a um arquivo .c/.cpp.
ExclusiveDuration *
IncludedBy O caminho completo do arquivo que incluía o arquivo atual.
IncludedPath O caminho completo do arquivo atual.
InclusiveDuration *
InvocationId *
StartTime Um carimbo de data/hora que representa o momento em que o evento de arquivo atual foi emitido.
Ferramenta *

* O valor dessa coluna é o mesmo da visualização do Gerenciador de Compilação.

Predefinições de exibição de arquivos

Nome da predefinição Modo de exibição preferencial Como usar
Estatísticas Tabela Veja quais arquivos tiveram o maior tempo de análise agregado examinando a lista em ordem decrescente. Use essas informações para reestruturar seus cabeçalhos ou decidir o que incluir em seu PCH.

Funções

O modo de exibição Funções é usado para identificar funções com um tempo de geração de código excessivamente longo.

Colunas de dados de visualização de funções

Nome da Coluna Descrição
ActivityName A atividade em andamento quando este evento de função foi emitido. Atualmente, esse valor é sempre CodeGeneration.
BuildTimelineDescription *
BuildTimelineId *
Componente *
Contagem *
Duration A duração da atividade de geração de código para essa função.
FunctionName O nome da função que está passando pela geração de código.
InvocationId *
StartTime Um carimbo de data/hora que representa quando o evento de função atual foi emitido.
Ferramenta *

* O valor dessa coluna é o mesmo da visualização do Gerenciador de Compilação.

Predefinições de visualização de funções

Nome da predefinição Modo de exibição preferencial Como usar
Estatísticas Tabela Veja quais funções tiveram o maior tempo de geração de código agregado examinando a lista em ordem decrescente. A lista pode sugerir onde o código usa a palavra-chave __forceinline em excesso ou que algumas funções podem ser muito grandes.
Linhas do tempo Gráfico Examine este gráfico de barras para saber o local e a duração das funções que levam mais tempo para serem geradas. Veja se eles se alinham com gargalos no modo de exibição do Gerenciador de Compilação. Se o fizerem, tome as medidas apropriadas para reduzir o tempo de geração de código e beneficiar seus tempos de compilação.

Confira também

Introdução ao C++ Build Insights
Referência: comandos vcperf
Tutorial: noções básicas sobre o Windows Performance Analyzer
Windows Performance Analyzer