Analisi dei dati relativi alle prestazioni per il codice Visual C++, Visual C# e Visual Basic nelle app di Windows Store
In questo argomento vengono illustrati i dati relativi alle prestazioni del codice Visual C++, Visual C# e Visual Basic presentato nelle visualizzazioni dei rapporti dello strumento di profilatura di Microsoft Visual Studio Express 2012 per Windows 8. Per raccogliere i dati relativi alle prestazioni di Visual C++, Visual C# e Visual Basic, vedi uno dei seguenti argomenti:
In questo argomento
Questo argomento contiene le seguenti sezioni:
Aprire il file di rapporto della profilatura
Tipi di dati delle prestazioni
Just My Code
Tipi di visualizzazioni dei rapporti di prestazioni
Visualizzazioni dei rapporti di prestazioni
Visualizzazione Riepilogo
Visualizza Dettagli funzione
Visualizzazione Albero delle chiamate
Visualizzazione Chiamante/chiamato
Visualizzazioni Moduli e Funzioni
Visualizzazione Righe
Personalizzare le visualizzazioni griglia dei dati
Aprire il file di rapporto della profilatura
Quando interrompi l'esecuzione di una profilatura dall'IDE di Visual Studio, i dati delle prestazioni vengono visualizzati automaticamente in un documento.
Per aprire un file di rapporto della profilatura (con estensione vspx) generato dallo strumento da riga di comando VSPerf o salvato dopo l'esecuzione di una profilatura precedente, procedi come indicato di seguito:
Se necessario, apri Visual Studio.
Scegli Apri file dal menu File.
Nella finestra di dialogo Apri file passa alla cartella contenente il file di rapporto della profilatura, quindi scegli il file di rapporto.
Tipi di dati delle prestazioni
Il profiler di Visual Studio Express 2012 per Windows 8 utilizza una tecnica di campionatura per raccogliere i dati delle prestazioni per il codice Visual C++, Visual C# e Visual Basic. Secondo un intervallo basato sul clock del processore, il profiler acquisisce uno snapshot delle funzioni attualmente attive, corrispondenti allo stack di chiamate. Una funzione attiva nello stack di chiamate esegue il codice o attende le funzioni che dovrà eseguire. Per ogni funzione nello stack di chiamate campionate, il profiler assegna i valori di campionamento alla funzione come indicato di seguito:
Se la funzione esegue il codice nel proprio corpo (non in una funzione figlio), i conteggi dei campioni inclusivi ed esclusivi della funzione vengono incrementati.
Se la funzione è in attesa della restituzione di una funzione figlio, viene incrementato solo il conteggio dei campioni Inclusivi della funzione.
I dati di profilatura per una funzione includono il numero assoluto di campioni raccolti per la funzione e la percentuale relativa di tali campioni rispetto al numero totale di campioni raccolti durante l'esecuzione della profilatura. I dati sono calcolati per due set di valori di intervallo:
I valori inclusivi vengono calcolati dal numero totale di campioni raccolti per una funzione quando è nello stack di chiamate, compresi i campioni raccolti durante l'esecuzione delle funzioni figlio. Quando uno stack di chiamate campionate viene analizzato, i conteggi dei campioni inclusivi di tutte le funzioni nello stack di chiamate vengono incrementati.
I valori esclusivi vengono calcolati dal numero totale di campioni raccolti per una funzione quando esegue il proprio codice. I valori esclusivi non comprendono i campioni raccolti durante l'esecuzione delle funzioni figlio. Quando uno stack di chiamate campionate viene analizzato, il conteggio dei campioni esclusivi viene incrementato solo per la funzione che esegue il codice nel proprio corpo.
Tipi di visualizzazioni dei rapporti di prestazioni
Le visualizzazioni dei rapporti di profilatura presentano i dati in due modi:
Visualizzazioni del grafico chiamate: mostra le informazioni sulle funzioni nel contesto dei percorsi di esecuzione.
Albero del Percorso critico nella finestra di riepilogo: mostra il percorso di esecuzione per il maggior numero di campioni che hanno richiesto la maggior quantità di tempo nell'esecuzione della profilatura.
La visualizzazione Albero delle chiamate è un grafico delle chiamate per tutti i percorsi di esecuzione che sono stati campionati nell'esecuzione della profilatura.
Le visualizzazioni Dettagli funzione e Chiamante/chiamato si concentrano su una funzione selezionata, presentando le funzioni che hanno chiamato la funzione selezionata e le funzioni chiamate dalla funzione.
Le visualizzazioni del grafico chiamate consentono di individuare i problemi di prestazioni negli algoritmi.
Visualizzazioni di elenchi di funzioni: presentano i dati delle prestazioni delle funzioni in una tabella. Puoi ordinare le funzioni scegliendo una colonna di dati.
L'elenco Funzioni con più lavoro individuale nella pagina di riepilogo mostra le funzioni con il maggior numero di campioni esclusivi raccolti nell'esecuzione della profilatura.
La visualizzazione Moduli raggruppa le funzioni in base al file dll o exe che le contiene.
La visualizzazione Funzioni è un unico elenco di funzioni.
La visualizzazione Righe include i dati relativi alle prestazioni per le istruzioni delle funzioni in esecuzione quando è stato raccolto un campione.
Puoi spostarti tra le visualizzazioni selezionando una funzione e scegliendo una nuova visualizzazione dall'elenco a discesa Visualizzazione corrente.
Just My Code
Per impostazione predefinita, il profiler utilizza la funzionalità Just My Code durante la creazione di rapporti. Quando il profiler analizza le informazioni sullo stack di chiamate, determina se una funzione nello stack di chiamate è un membro del tuo codice o del codice di sistema, ad esempio un metodo nella libreria di classi di base di .NET Framework. Quando Just My Code è abilitato e la funzione è una chiamata al codice di sistema, l'analisi del profiler aggiunge tutti i campioni successivi raccolti per lo stack di chiamate nei valori inclusivi ed esclusivi della prima chiamata di sistema. Le chiamate di sistema vengono quindi raggruppate nella prima chiamata di sistema, consentendoti di concentrarti sull'ottimizzazione del codice.
Per modificare il comportamento predefinito di Just My Code e visualizzare tutte le chiamate alle chiamate di sistema, procedi come indicato di seguito:
Scegli Opzioni dal menu Strumenti.
Nella finestra di dialogo Opzioni scegli Strumenti di prestazioni, quindi Generale.
Nel gruppo Just My Code deseleziona la casella di controllo Abilita Just My Code per i rapporti del profiler (campionamento).
Visualizzazioni dei rapporti di prestazioni
Visualizzazione Riepilogo
La pagina Riepilogo fornisce due visualizzazioni dei dati di profilatura che spesso possono indicare i migliori candidati per l'ottimizzazione delle prestazioni.
L'albero Percorso critico mostra lo stack di chiamate con il maggior numero di campioni nell'esecuzione della profilatura. Comprendere il motivo per cui questo algoritmo richiede così tanto tempo può portare a un'ottimizzazione.
L'elenco Funzioni con più lavoro individuale presenta le dieci funzioni che hanno utilizzato il maggior tempo esclusivo. Puoi ottenere miglioramenti delle prestazioni rapidi e significativi ottimizzando il codice della funzione o riducendo il numero di chiamate di queste funzioni.
Per aprire una visualizzazione Dettagli funzione relativa alla funzione, scegli il nome della funzione nella visualizzazione Riepilogo.
Visualizza Dettagli funzione
Il grafico a barre Distribuzione costi rappresenta le relazioni tra una funzione selezionata e le funzioni chiamanti che hanno eseguito la funzione selezionata e tra la funzione selezionata e le funzioni che ha chiamato.
Sulla barra Funzioni chiamanti sono visualizzate le funzioni che hanno chiamato la funzione selezionata. La dimensione di un blocco di funzioni chiamanti indica la percentuale di tempo di esecuzione totale della funzione selezionata causata dalla funzione chiamante.
La barra Funzione selezionata indica la quantità relativa del tempo di esecuzione totale impiegato dalla funzione selezionata per l'esecuzione del proprio codice, il blocco Corpo funzione, e la quantità di tempo impiegata per l'esecuzione delle funzioni chiamate dalla funzione selezionata.
Sulla barra Funzioni chiamate sono visualizzate le funzioni chiamate dalla funzione selezionata. La dimensione di un blocco di funzioni chiamate indica la percentuale di tempo di esecuzione totale della funzione chiamata impiegato nella funzione chiamata.
Puoi scegliere una funzione chiamante o chiamata da utilizzare come funzione selezionata.
Visualizzazione Albero delle chiamate
Puoi usare la visualizzazione Albero delle chiamate per esplorare i percorsi di esecuzione della funzione utilizzati nella tua app. La radice dell'albero è il punto di ingresso nell'app. Per ogni nodo della funzione vengono elencate tutte le funzioni chiamate e i dati delle prestazioni delle relative chiamate di funzione. I valori delle funzioni nella visualizzazione Albero delle chiamate sono relativi alle istanze della funzione chiamate dalla funzione padre nell'albero delle chiamate. I valori percentuali sono il rapporto del periodo del valore delle istanze della funzione con il tempo di esecuzione totale della profilatura.
Per concentrarti su un nodo della visualizzazione Albero delle chiamate, seleziona il nodo, quindi scegli Imposta radice dal menu di scelta rapida. Quando imposti il nodo radice, elimini dalla visualizzazione tutte le altre voci ad eccezione del sottoalbero del nodo selezionato. Per reimpostare il nodo radice sul nodo originale, sceglie Reimposta radice dal menu di scelta rapida.
Colonne della visualizzazione Albero delle chiamate
Nome colonna |
Descrizione |
---|---|
Campioni inclusivi |
Numero dei campioni raccolti per le istanze della funzione chiamate dalla funzione padre nell'albero delle chiamate. Nel numero di campioni sono inclusi quelli raccolti per le funzioni chiamate dalla funzione. |
Campioni esclusivi |
Numero dei campioni raccolti per le istanze della funzione chiamate dalla funzione padre nell'albero delle chiamate. Nel numero di campioni non sono inclusi quelli raccolti per le funzioni chiamate dalla funzione. |
% campioni inclusivi |
Percentuale del numero totale di campioni raccolti nell'esecuzione della profilatura, che sono stati raccolti per le istanze della funzione chiamate dalla funzione padre. Il valore include i campioni raccolti per le funzioni chiamate dalla funzione. |
% campioni esclusivi |
Percentuale del numero totale di campioni raccolti nell'esecuzione della profilatura, che sono stati raccolti per le istanze della funzione chiamate dalla funzione padre. Il valore non include i campioni raccolti per le funzioni chiamate dalla funzione. |
Nome modulo |
Nome del modulo (con estensione dll o exe) che contiene la funzione. |
Visualizzazione Chiamante/chiamato
La visualizzazione Chiamante/chiamato è una rappresentazione albero dei dati del grafico a barre Distribuzione costi dettagli funzione che include tutti i dettagli dell'intervallo. Puoi usare la visualizzazione Chiamante/chiamato per esaminare la relazione tra una funzione selezionata e le funzioni che l'hanno la chiamata e la funzione che ha chiamato. La visualizzazione Chiamante/chiamato è costituita da tre griglie.
Nella griglia centrale, Funzione corrente mostra le informazioni di profilatura sulla funzione selezionata. I valori includono i campioni da tutte le chiamate alla funzione. I valori di Funzioni che hanno chiamato la funzione corrente sono visualizzati nella griglia superiore, mentre i valori di Funzioni che sono state chiamate dalla funzione corrente sono visualizzati nella griglia inferiore. I valori della funzione corrente sono i totali di tutte le chiamate alla funzione campionate. I valori delle funzioni chiamanti e chiamate includono solo i campioni raccolti per la funzione quando ha chiamato o è stata chiamata dalla funzione selezionata.
Per esplorare l'albero delle chiamate di una funzione, fai doppio clic su una funzione chiamante o chiamata. In questo modo la funzione selezionata sarà la nuova funzione selezionata e potrai visualizzare le relative funzioni chiamanti e chiamate.
Colonne della visualizzazione Chiamante/chiamato
Nome colonna |
Descrizione |
---|---|
Campioni inclusivi |
|
Campioni esclusivi |
|
% campioni inclusivi |
|
% campioni esclusivi |
|
Visualizzazioni Moduli e Funzioni
Le visualizzazioni Moduli e Funzioni presentano i dettagli dei dati di profilatura per le funzioni nel rapporto di profilatura. La visualizzazione Moduli organizza le funzioni JavaScript in base al file di origine JS che le contiene. Altre funzioni sono elencate in base al modulo, ad esempio una DLL. La visualizzazione Funzioni elenca tutte le funzioni senza utilizzare una gerarchia. Individuare il tuo codice personalizzato nella visualizzazione Moduli è spesso più facile rispetto alla visualizzazione Funzioni. Potrebbe tuttavia risultare più facile confrontare le funzioni nella visualizzazione Funzioni.
Colonne delle visualizzazioni Moduli e Funzioni
Nome colonna |
Descrizione |
---|---|
Campioni inclusivi |
Numero di campioni raccolti quando la funzione si trovata nello stack di chiamate. Nel numero di campioni sono inclusi quelli raccolti per le funzioni chiamate dalla funzione. |
Campioni esclusivi |
Numero di campioni raccolti mentre la funzione eseguiva il proprio codice. In Campioni esclusivi non sono compresi i campioni raccolti durante l'esecuzione delle funzioni chiamate dalla funzione. |
% campioni inclusivi |
Percentuale del numero totale di campioni raccolti nell'esecuzione della profilatura quando la funzione si trovata nello stack di chiamate. Il numeratore è il valore di Campioni inclusivi della funzione. Il denominatore è il numero totale di campioni raccolti per l'esecuzione della profilatura. |
% campioni esclusivi |
Percentuale del numero totale di campioni raccolti nell'esecuzione della profilatura per la funzione. Il valore non include i campioni raccolti per le funzioni chiamate dalla funzione. |
Visualizzazione Righe
Nella visualizzazione Righe dei dati di campionamento sono elencati i dati delle prestazioni per le istruzioni eseguite durante la raccolta dei campioni nell'esecuzione della profilatura. In un file di origine un'istruzione può occupare più di una riga in un file di origine e una singola riga può includere più di un'istruzione.
Nome colonna |
Descrizione |
---|---|
Campioni inclusivi |
Numero di campioni raccolti per la riga nell'esecuzione della profilatura. Nel numero di campioni sono inclusi quelli raccolti per le funzioni chiamate dalla riga. |
Campioni esclusivi |
Numero di campioni raccolti per la riga nell'esecuzione della profilatura. Nel numero di campioni non sono inclusi quelli raccolti per le funzioni chiamate dalla riga. |
% campioni inclusivi |
Percentuale del numero totale di campioni raccolti nell'esecuzione della profilatura per la riga. Il valore include i campioni raccolti per le funzioni chiamate dalla riga. |
% campioni esclusivi |
Percentuale del numero totale di campioni raccolti nell'esecuzione della profilatura per la riga. Il valore non include i campioni raccolti per le funzioni chiamate dalla riga. |
Inizio riga di origine |
Numero di riga iniziale nel file di origine in corrispondenza del quale è stato raccolto il campione. |
Inizio carattere di origine |
Offset del carattere iniziale nel file di origine in corrispondenza del quale è stato raccolto il campione. |
Fine riga di origine |
Numero di riga finale nel file di origine in corrispondenza del quale è stato raccolto il campione. |
Fine carattere di origine |
Offset del carattere finale nel file di origine in corrispondenza del quale è stato raccolto il campione. |
Personalizzare le visualizzazioni griglia dei dati
Puoi aggiungere o rimuovere colonne di dati e modificare l'ordine in cui sono visualizzate le colonne. Apri il menu di scelta rapida per una riga di intestazione della tabella e scegli Aggiungi/Rimuovi colonne. Seleziona le caselle di controllo delle colonne che desideri visualizzare e deseleziona quelle delle colonne che vuoi nascondere. Usa i pulsanti freccia per spostare una colonna selezionata.
Ulteriori colonne dei dati di profilatura
Nome colonna |
Descrizione |
---|---|
Indirizzo funzione |
Indirizzo di memoria della funzione. |
Numero riga funzione |
Numero di riga dell'inizio di questa funzione nel file di origine. |
File di origine |
File di origine che contiene la definizione per questa funzione. |
Nome modulo |
Nome del modulo che contiene la funzione. |
Percorso modulo |
Percorso del modulo che contiene la funzione. |
ID processo |
ID di processo (PID) dell'esecuzione della profilatura. |
Nome processo |
Nome del processo. |