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