Identificare i percorsi caldi con un grafico di fiamma (C#, Visual Basic, C++, F#)
Gli strumenti di profilatura di Visual Studio per l'utilizzo della CPU e la strumentazione includono la visualizzazione Flame Graph. Il Flame Graph consente di identificare percorsi critici nel codice mostrando una visualizzazione dell'albero delle chiamate. Il percorso critico è lo stack di chiamate per le funzioni che utilizzano la maggior parte della CPU o richiedono più tempo, ed è spesso un ottimo punto di partenza per individuare potenziali ottimizzazioni delle prestazioni. Il grafico offre una panoramica visiva della posizione in cui viene impiegato il tempo nell'applicazione ed è possibile fare clic su nodi specifici per esplorarli ulteriormente.
Per un'esercitazione che illustra come migliorare le prestazioni usando il grafico a fiamma, vedere Caso di studio: guida per principianti all'ottimizzazione del codice. Per informazioni sul profiler della CPU, vedere Analizzare le prestazioni usando la profilatura della CPU.
Analizzare i percorsi ad accesso frequente
La visualizzazione Flame Graph è disponibile nella visualizzazione dei dettagli del rapporto diagession.
Avviare una sessione di profilatura con lo strumento Utilizzo CPU o Strumentazione.
Dopo aver arrestato la sessione di profilatura e il report viene caricato, selezionare Apri dettagli.
Selezionare Flame Graph nella selezione a discesa Visualizzazione corrente.
Appare il grafico a fiamma.
Il percorso caldo è il percorso del codice che utilizza la maggior parte della CPU o la maggior parte del tempo mentre si scende attraverso l'albero delle chiamate.
Per impostazione predefinita, i dati visualizzati in Flame Graph rappresentano gli stessi dati mostrati nella visualizzazione albero delle chiamate per il periodo di raccolta dei dati. In particolare, per l'utilizzo della CPU, vengono visualizzati i valori totali della CPU . Questo valore è inclusivo, quindi include l'utilizzo della CPU (ovvero il tempo di calcolo della CPU) usato dalle chiamate alla funzione e qualsiasi altra funzione chiamata dalla funzione. Allo stesso modo, per la strumentazione, il grafico mostra i valori equivalenti alla colonna Totale nella visualizzazione ad albero delle chiamate.
Tuttavia, se si seleziona un nodo, il nodo selezionato diventa la nuova linea di base e usa 100% della larghezza del grafico della fiamma. In questo modo è possibile visualizzare meglio un albero delle chiamate complesso e visualizzare i nomi lunghi quando vengono troncati o nascosti. Di seguito è riportato un esempio di grafico di fiamma che mostra un albero delle chiamate più complesso.
Per visualizzare i dettagli su qualsiasi nodo, selezionare il nodo.
Scegliere Reimposta zoom per tornare alla visualizzazione predefinita.
È anche possibile passare a visualizzazioni diverse nel report di profilatura selezionando un nodo e quindi scegliendo un'opzione come Visualizzazione nell'albero delle chiamate dal menu di scelta rapida.
Capovolgi il grafico di fiamma
Per impostazione predefinita, il grafico della fiamma nello strumento viene visualizzato a capovolto o come grafico iciclo , dove l'asse y sta conteggiando la profondità dello stack verso il basso da zero nella parte superiore.
È possibile visualizzare un layout standard del grafico a fiamma facendo clic su Flip Flame Graph.
Spostarsi nel grafico di fiamma
Per un grafico di fiamma complesso, è possibile ingrandire la visualizzazione selezionando elementi specifici.
Nella visualizzazione Flame Graph è possibile spostarsi facendo clic su un nodo con un mouse o usando la tastiera. Sono inoltre supportati i tasti di scelta rapida seguenti.
Scelta rapida da tastiera | Comando |
---|---|
Scheda | Passare a qualsiasi nodo |
Freccia SU/GIÙ | Passare all'elemento padre o figlio di un nodo |
Freccia destra/sinistra | Passare al peer di un nodo nello stack |
Entrare | Zoom avanti (selezione) |
Fuga | Riduci lo zoom |