Eseguire strumenti di profilatura nelle build di rilascio o debug (C#, Visual Basic, C++, F#)
Visual Studio offre una scelta di strumenti di misurazione e profilatura delle prestazioni. Alcuni strumenti, ad esempio Utilizzo CPU e Utilizzo memoria, possono essere eseguiti nelle build di versione o durante il debug dell'app (compilazione di debug). Gli strumenti visualizzati nella finestra strumenti di diagnostica vengono eseguiti solo durante una sessione di debug. Gli strumenti che compaiono nel Performance Profiler vengono eseguiti senza il debugger, generalmente nelle build di rilascio, e si analizzano i risultati dopo aver scelto di interrompere e raccogliere i dati per l'analisi post-mortem.
Il profiler prestazioni e gli strumenti di diagnostica integrati nel debugger offrono informazioni ed esperienze diverse. Durante l'uso degli strumenti di diagnostica, il debugger mostra i valori delle variabili e consente di usare i punti di interruzione.
I dati sulle prestazioni delle build di rilascio nel profiler delle prestazioni sono i più precisi e accurati. Questi strumenti offrono risultati più vicini all'esperienza dell'utente finale. In genere, si tratta del metodo preferito per l'uso degli strumenti di profilatura. Tuttavia, potrebbero esserci scenari in cui l'uso del debugger in una compilazione di debug può contribuire a individuare il problema delle prestazioni, soprattutto se si vogliono usare funzionalità del debugger, ad esempio punti di interruzione e passaggi di codice.
Per decidere se usare gli strumenti di profilatura nelle build di rilascio o di debug, tenere presente quanto segue:
- Le build di versione forniscono ottimizzazioni come l'inlining delle chiamate di funzione e delle costanti, l'eliminazione di percorsi di codice non utilizzati e l'archiviazione di variabili in modi che il debugger non può utilizzare. I numeri di prestazioni nelle compilazioni di debug sono meno accurati, perché le compilazioni di debug non dispongono di queste ottimizzazioni.
- Oltre alle differenze tra le build di versione e le build di debug, il debugger stesso modifica le prestazioni temporali, poiché esegue operazioni necessarie del debugger come l'intercettazione di eventi di eccezione e di caricamento dei moduli.
- Per problemi di prestazioni causati da chiamate a elevato utilizzo di CPU, potrebbero verificarsi notevoli differenze di prestazioni tra le build di rilascio e di debug. Verificare se il problema di prestazioni della CPU esiste nelle build di versione.
- I problemi di prestazioni esterni, ad esempio i problemi di I/O di file o di velocità di risposta della rete, non saranno molto diversi in una build di versione o in una build di debug.
- Se il problema si verifica solo con le compilazioni di debug, probabilmente non è necessario eseguire gli strumenti con le build di rilascio.
- Alcuni strumenti, ad esempio lo strumento di allocazione di oggetti .NET, sono disponibili solo in Performance Profiler (scenari non debugger).
Raccogliere dati di profilatura nelle build di rilascio
Per raccogliere dati sulle prestazioni nelle build di versione, eseguire gli strumenti di Performance Profiler.
Con un progetto aperto in Visual Studio, impostare la configurazione della soluzione su Releasee selezionare Windows Debugger locale (o Macchina locale) come destinazione di distribuzione.
Selezionare Debug>Profilo prestazioni, oppure premere Alt+F2.
Nella pagina di avvio degli strumenti di diagnostica selezionare uno o più strumenti da eseguire. Vengono visualizzati solo gli strumenti applicabili al tipo di progetto, al sistema operativo e al linguaggio di programmazione. Selezionare Mostra tutti gli strumenti per visualizzare anche gli strumenti disabilitati per questa sessione di diagnostica.
Per avviare la sessione di diagnostica, selezionare Avvia.
Durante l'esecuzione della sessione, alcuni strumenti mostrano grafici di dati in tempo reale nella pagina degli strumenti di diagnostica e possono mostrare opzioni per sospendere e riprendere la raccolta dei dati.
Per terminare la sessione di diagnostica, selezionare Interrompere la raccolta.
I dati analizzati appaiono nella pagina del report .
Per altre informazioni sugli strumenti disponibili per l'uso nelle build di versione e su come analizzare i report, vedere:
- Analizzare le prestazioni usando la profilatura della CPU
- Analizzare l'utilizzo della memoria
- Analizzare l'utilizzo della memoria per il codice .NET
- Analizzare i dati di strumentazione
- Analizzare i contatori .NET
- Analizzare le prestazioni del codice asincrono .NET
- Analizzare le prestazioni del database
- Visualizzare gli eventi
- Analizzare l'utilizzo della GPU
Nota
Usa "Rilancia" per saltare la pagina di avvio ed eseguire automaticamente con le impostazioni precedenti premendo Alt+F2 oppure facendo clic su Debug > Analizzatore delle prestazioni.
(Facoltativo) Salvare il report e aprirlo in un secondo momento dall'elenco sessioni aperte di recente nella pagina di avvio degli strumenti di diagnostica.
Raccogliere dati di profilatura durante il debug
Quando si avvia il debug in Visual Studio selezionando Debug>Avvia debugoppure premendo F5, per impostazione predefinita viene visualizzata la finestra Strumenti di diagnostica. Per aprirlo manualmente, selezionare Debug>Windows>Mostra strumenti di diagnostica. La finestra Strumenti di diagnostica mostra informazioni su eventi, memoria del processo, utilizzo della CPU e contatori .NET.
- Usare l'icona Impostazioni nella barra degli strumenti per selezionare se visualizzare Utilizzo CPU, Utilizzo Memoria, o Contatori .NET.
Quando si avvia il debug in Visual Studio selezionando Debug>Avvia debugoppure premendo F5, per impostazione predefinita viene visualizzata la finestra Strumenti di diagnostica. Per aprirlo manualmente, selezionare Debug>Windows>Mostra strumenti di diagnostica. Nella finestra Strumenti di diagnostica vengono visualizzate informazioni sugli eventi, la memoria del processo e l'utilizzo della CPU.
- Usare l'icona Impostazioni nella barra degli strumenti per selezionare se visualizzare utilizzo CPU, Utilizzo memoriao analisi dell'interfaccia utente.
Selezionare "Impostazioni" nell'elenco a discesa "Impostazioni" per aprire le pagine delle proprietà "Strumenti di diagnostica" con altre opzioni.
Se si esegue Visual Studio Enterprise, è possibile abilitare o disabilitare IntelliTrace passando a Strumenti di >Opzioni>IntelliTrace.
La sessione di diagnostica termina quando si arresta il debug.
Per altre informazioni sugli strumenti disponibili durante il debug, vedere:
- Misurare le prestazioni dell'applicazione analizzando l'utilizzo della CPU
- Misurare l'utilizzo della memoria in Visual Studio
- Analizzare i contatori .NET
Scheda Eventi
Durante una sessione di debug, nella scheda Eventi della finestra Strumenti di diagnostica sono elencati gli eventi di diagnostica che si verificano. I prefissi di categoria Breakpoint, Filee altri, permettono di individuare rapidamente una categoria nell'elenco o di ignorare le categorie che non ti interessano.
Utilizzare l'elenco a discesa Filtro filtro per filtrare gli eventi all'interno e all'esterno della visualizzazione selezionando o cancellando categorie specifiche di eventi.
Usare la casella di ricerca per trovare una stringa specifica nell'elenco eventi. Di seguito sono riportati i risultati di una ricerca del nome file modello che corrisponde a tre eventi:
Usare la casella di ricerca per trovare una stringa specifica nell'elenco eventi. Ecco i risultati di una ricerca per la stringa nome che corrisponde a quattro eventi:
Per altre informazioni, vedere Ricerca e filtro della scheda Eventi della finestra Strumenti di diagnostica.
Raccogliere dati di profilatura dalla riga di comando
Per misurare i dati sulle prestazioni dalla riga di comando, è possibile usare VSDiagnostics.exe, incluso in Visual Studio o in Strumenti remoti. Ciò è utile per l'acquisizione di tracce delle prestazioni nei sistemi in cui Visual Studio non è installato o per lo scripting della raccolta di tracce delle prestazioni. Per istruzioni dettagliate, vedere Misurare le prestazioni dell'applicazione dalla riga di comando.