Condividi tramite


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.

Screenshot che mostra il Flame Graph con il menu contestuale visualizzato.

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.

  1. Avviare una sessione di profilatura con lo strumento Utilizzo CPU o Strumentazione.

  2. Dopo aver arrestato la sessione di profilatura e il report viene caricato, selezionare Apri dettagli.

    Screenshot che mostra l'opzione Apri dettagli selezionata.

  3. Selezionare Flame Graph nella selezione a discesa Visualizzazione corrente.

    Screenshot che mostra la visualizzazione Flame Graph selezionata.

    Appare il grafico a fiamma.

    Screenshot che mostra la panoramica di Flame Graph.

    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.

    Screenshot che mostra il Flame Graph di un albero di chiamate 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.

    Screenshot che mostra l'opzione Flame Graph da visualizzare nell'albero delle chiamate.

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.

Screenshot che mostra l'opzione Flip Flame Graph selezionata.

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