Condividi tramite


Riferimento: Visualizzazioni di Windows analizzatore prestazioni

Gli strumenti di Build Insights per C++ sono disponibili in Visual Studio 2019 e versioni successive. Per visualizzare la documentazione per questa versione, impostare il controllo selettore della versione di Visual Studio per questo articolo su Visual Studio 2019 o versione successiva. Si trova nella parte superiore del sommario in questa pagina.

Questo articolo fornisce informazioni dettagliate su ognuna delle visualizzazioni di Build Insights di C++ disponibili in Windows analizzatore prestazioni (WPA). Usare questa pagina per trovare:

  • descrizioni delle colonne di dati; e
  • set di impostazioni disponibili per ogni visualizzazione, inclusi l'uso previsto e la modalità di visualizzazione preferita.

Se non si ha familiarità con WPA, è consigliabile acquisire familiarità con le nozioni di base di WPA per C++ Build Insights.

Esplora compilazioni

La visualizzazione Esplora compilazioni viene usata per:

  • diagnosticare i problemi di parallelismo,
  • determinare se il tempo di compilazione è dominato dall'analisi, dalla generazione di codice o dal collegamento e
  • identificare colli di bottiglia e attività di compilazione insolitamente lunghe.

Colonne di dati della visualizzazione di Esplora compilazioni

Nome colonna Descrizione
BuildTimelineDescription Descrizione testuale della sequenza temporale in cui si verifica l'attività o la proprietà corrente.
BuildTimelineId Identificatore in base zero per la sequenza temporale in cui si verifica l'attività o la proprietà corrente.
Componente Componente compilato o collegato quando è stato generato l'evento corrente. Il valore di questa colonna è <Invocation X Info> quando nessun componente è associato a questo evento. X è un identificatore numerico univoco per la chiamata eseguita al momento dell'emissione dell'evento. Questo identificatore corrisponde a quello nella colonna InvocationId per questo evento.
Conteggio Numero di attività o proprietà rappresentate da questa riga di dati. Questo valore è sempre 1 ed è utile solo negli scenari di aggregazione quando vengono raggruppate più righe.
ExclusiveCPUTime Quantità di tempo della CPU in millisecondi usata da questa attività. Il tempo impiegato nelle attività figlio non è incluso in questo importo.
ExclusiveDuration Durata in millisecondo dell'attività. La durata delle attività figlio non è inclusa in questo importo.
InclusiveCPUTime Quantità di tempo della CPU in millisecondi usata da questa attività e da tutte le attività figlio.
InclusiveDuration Durata in millisecondo di questa attività, incluse tutte le attività figlio.
ChiamatationDescription Descrizione testuale della chiamata in cui si è verificato questo evento. La descrizione include se è stato cl.exe o link.exe e un identificatore numerico univoco di chiamata. Se applicabile, include il percorso completo del componente compilato o collegato durante la chiamata. Per le chiamate che non compilano alcun componente o per quelle che compilano più componenti, il percorso è vuoto. L'identificatore di chiamata è uguale a quello nella colonna InvocationId.
InvocationId Identificatore numerico univoco per la chiamata in cui si è verificato questo evento.
Nome Nome dell'attività o della proprietà rappresentata da questo evento.
Time Timestamp che identifica quando si è verificato l'evento.
Strumento Strumento in esecuzione quando si è verificato questo evento. Il valore di questa colonna è CL o Link.
Type Tipo dell'evento corrente. Questo valore è Activity o Property.
Valore Se l'evento corrente è una proprietà, questa colonna contiene il relativo valore. Questa colonna viene lasciata vuota quando l'evento corrente è un'attività.

Set di impostazioni di visualizzazione di Build Explorer

Nome preimpostato Modalità visualizzazione preferita Uso
Statistiche attività Grafico/Tabella Usare questo set di impostazioni per visualizzare le statistiche aggregate per tutte le attività di Build Explorer. In modalità tabella, indicare a colpo d'occhio se la compilazione è dominata dall'analisi, dalla generazione di codice o dal linker. Le durate aggregate per ogni attività vengono ordinate in ordine decrescente. Eseguire il drill-in espandendo il nodo superiore per trovare facilmente le chiamate che richiedono più tempo per queste attività principali. Se si preferisce, è possibile modificare le impostazioni WPA per visualizzare le medie o altri tipi di aggregazioni. In modalità grafo, vedere quando ogni attività è attiva durante la compilazione.
Chiamate Grafico Scorrere verso il basso un elenco di chiamate nella visualizzazione grafico ordinate in base all'ora di inizio. È possibile usarlo insieme alla visualizzazione CPU (campionata) per trovare chiamate allineate alle zone di utilizzo della CPU basse. Rilevare i problemi di parallelismo.
Proprietà chiamata Tabella Trovare rapidamente informazioni chiave su un determinato compilatore o chiamata del linker. Determinare la versione, la directory di lavoro o la riga di comando completa usata per richiamarla.
Sequenze temporali Grafico Vedere un grafico a barre del modo in cui la compilazione è stata parallelizzata. Identificare i problemi di parallelismo e i colli di bottiglia a colpo d'occhio. Configurare WPA per assegnare significati diversi alle barre in base alle proprie esigenze. Scegliere le descrizioni delle chiamate come ultima colonna raggruppata per visualizzare un grafico a barre codificato a colori di tutte le chiamate. Consente di identificare rapidamente i responsabili che richiedono molto tempo. Quindi, ingrandire e scegliere il nome dell'attività come ultima colonna raggruppata per visualizzare le parti più lunghe.

File

La visualizzazione File viene usata per:

  • determinare quali intestazioni vengono incluse più spesso e
  • consente di decidere cosa includere in un'intestazione precompilata (PCH).

Colonne di dati della visualizzazione dei file

Nome colonna Descrizione
ActivityName Attività in corso quando è stato generato questo evento di file. Attualmente, questo valore è sempre Analisi.
BuildTimelineDescription *
BuildTimelineId *
Componente *
Conteggio *
Livello di annidamento Posizione in base zero nell'albero di inclusione in cui viene trovato questo file. Il conteggio inizia alla radice dell'albero di inclusione. Il valore 0 corrisponde in genere a un file con estensione c/.cpp.
ExclusiveDuration *
IncludedBy Percorso completo del file che include il file corrente.
IncludedPath Percorso completo del file corrente.
InclusiveDuration *
InvocationId *
StartTime Timestamp che rappresenta l'ora in cui è stato generato l'evento di file corrente.
Strumento *

* Il valore di questa colonna è uguale a quello della visualizzazione Esplora compilazioni .

Set di impostazioni di visualizzazione file

Nome preimpostato Modalità visualizzazione preferita Uso
Statistiche Tabella Vedere quali file hanno il tempo di analisi aggregato più alto esaminando l'elenco in ordine decrescente. Usare queste informazioni per ristrutturare le intestazioni o decidere cosa includere nel PCH.

Funzioni

La visualizzazione Funzioni viene usata per identificare le funzioni con un tempo di generazione del codice eccessivamente lungo.

Funzioni visualizza colonne di dati

Nome colonna Descrizione
ActivityName Attività in corso quando è stato generato l'evento della funzione. Attualmente, questo valore è sempre CodeGeneration.
BuildTimelineDescription *
BuildTimelineId *
Componente *
Conteggio *
Durata Durata dell'attività di generazione del codice per questa funzione.
FunctionName Nome della funzione in fase di generazione del codice.
InvocationId *
StartTime Timestamp che rappresenta quando è stato generato l'evento della funzione corrente.
Strumento *

* Il valore di questa colonna è uguale a quello della visualizzazione Esplora compilazioni .

Set di impostazioni di visualizzazione funzioni

Nome preimpostato Modalità visualizzazione preferita Uso
Statistiche Tabella Vedere quali funzioni hanno il tempo di generazione di codice aggregato più alto esaminando l'elenco in ordine decrescente. Possono suggerire dove il codice utilizza eccessivamente la __forceinline parola chiave o che alcune funzioni potrebbero essere troppo grandi.
Sequenze temporali Grafico Esaminare questo grafico a barre per apprendere la posizione e la durata delle funzioni che richiedono più tempo per la generazione. Verificare se sono allineati ai colli di bottiglia nella visualizzazione Esplora compilazioni. In tal caso, intervenire in modo appropriato per ridurre il tempo di generazione del codice e trarre vantaggio dai tempi di compilazione.

Vedi anche

Introduzione a C++ Build Insights
Riferimento: comandi vcperf
Esercitazione: Nozioni di base su Windows analizzatore prestazioni
Windows Performance Analyzer