Eseguire strumenti di profilatura con o senza il debugger (C#, Visual Basic, C++, F#)

Visual Studio offre una vasta gamma di strumenti di misurazione delle prestazioni e di profilatura. Alcuni strumenti, ad esempio Utilizzo CPU e Utilizzo memoria, possono essere eseguiti con o senza il debugger e in fase di rilascio o di debug delle configurazioni di compilazione. Gli strumenti visualizzati nella finestra Strumenti di diagnostica vengono eseguiti solo durante una sessione di debug. Gli strumenti visualizzati nel Profiler prestazioni vengono eseguiti senza il debugger e si analizzano i risultati dopo aver scelto di arrestare e raccogliere dati (per l'analisi post-mortem).

Nota

È possibile usare gli strumenti per le prestazioni non inclusi nel debugger con Windows 7 e versioni successive. Per eseguire gli strumenti di profilatura integrati nel debugger è necessario Windows 8 o versione successiva.

Il Profiler prestazioni non incluso nel debugger e gli Strumenti di diagnostica integrati nel debugger offrono informazioni ed esperienze di uso diverse. Gli strumenti integrati nel debugger mostrano i valori delle variabili e consentono di usare punti di interruzione. Gli strumenti non inclusi nel debugger ottengono risultati più vicini all'esperienza dell'utente finale.

Per decidere quali strumenti e risultati usare, prendere in considerazione le opzioni seguenti:

  • Strumento integrato nel debugger e strumento non debugger

    • I problemi di prestazioni esterni, come ad esempio i problemi di I/O dei file o di velocità di risposta della rete non sono visualizzati in modo molto diverso negli strumenti integrati nel debugger o negli altri.
    • Il debugger stesso modifica i tempi di prestazioni, in quanto esegue le operazioni del debugger necessarie, ad esempio l'intercettazione di eventi di eccezione e caricamento dei moduli.
    • I numeri di prestazioni delle build di rilascio nel profiler prestazioni sono i più precisi e accurati. I risultati degli strumenti integrati nel debugger sono più utili per confrontare con altre misurazioni correlate al debug o per usare le funzionalità del debugger.
    • Alcuni strumenti, ad esempio lo strumento di allocazione di oggetti .NET, sono disponibili solo per scenari non debugger.
  • Eseguire il debug e la build di versione

    • Per i problemi 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 esiste nelle build di versione.
    • Se il problema si verifica solo durante le compilazioni di debug, probabilmente non è necessario eseguire gli strumenti non del debugger. Per i problemi di compilazione delle versioni, decidere se le funzionalità fornite dagli strumenti integrati nel debugger consentiranno di individuare il problema.
    • Le compilazioni Release offrono funzionalità di ottimizzazione come ad esempio l'incorporamento di chiamate di funzione e di costanti, l'eliminazione di percorsi di codice non usati e l'archiviazione di variabili in modalità non utilizzabili dal debugger. I numeri di prestazioni nelle compilazioni di debug sono meno accurati, perché le compilazioni di debug non dispongono di queste ottimizzazioni.

Raccogliere dati di profilatura senza il debug

Per raccogliere dati sulle prestazioni senza debug, è possibile eseguire gli strumenti Profiler prestazioni.

  1. Con un progetto aperto in Visual Studio, impostare la configurazione della soluzione su Rilascio e selezionare Debugger Windows locale (o Computer locale) come destinazione di distribuzione.

  2. Selezionare Debug>Performance Profiler oppure premere ALT+F2.

  3. 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 vedere anche gli strumenti che sono disabilitati per la sessione di diagnostica.

    Screenshot degli strumenti di diagnostica.

    Screenshot degli strumenti di diagnostica.

  4. Per avviare la sessione di diagnostica, fare clic su 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.

    Screenshot della raccolta dati nel Profiler prestazioni.

    Screenshot della raccolta dati nel Profiler prestazioni.

  5. Per terminare la sessione di diagnostica, scegliere Arrestare raccolta.

    I dati analizzati vengono visualizzati nella pagina Report .

È possibile salvare i report e aprirli dall'elenco Sessioni aperte di recente nella pagina di avvio degli strumenti di diagnostica.

Screenshot dell'elenco Sessioni aperte di recente degli strumenti di diagnostica.

Screenshot dell'elenco Sessioni aperte di recente degli strumenti di diagnostica.

Per altre informazioni, vedi:

Raccogliere dati di profilatura durante il debug

Quando si avvia il debug in Visual Studio selezionando Debug>Avvia debug o premendo F5, per impostazione predefinita viene visualizzata la finestra Strumenti di diagnostica. Per aprirla manualmente, selezionare Debug>Finestre>Mostra strumenti di diagnostica. La finestra Strumenti di diagnostica mostra informazioni sugli eventi, la memoria dei processi, l'utilizzo della CPU e i contatori .NET.

Screenshot della finestra Strumenti di diagnostica.

Quando si avvia il debug in Visual Studio selezionando Debug>Avvia debug o premendo F5, per impostazione predefinita viene visualizzata la finestra Strumenti di diagnostica. Per aprirla manualmente, selezionare Debug>Finestre>Mostra strumenti di diagnostica. Nella finestra Strumenti di diagnostica vengono visualizzate informazioni su eventi, memoria dei processi e utilizzo della CPU.

Screenshot della finestra Strumenti di diagnostica

  • Usare l'icona Impostazioni sulla barra degli strumenti per scegliere se visualizzare Utilizzo memoria, Analisi interfaccia utente o Utilizzo CPU.

  • Selezionare Impostazioni nell'elenco a discesa Impostazioni per aprire le pagine delle proprietà degli strumenti di diagnostica con altre opzioni.

  • Se si esegue Visual Studio Enterprise, è possibile abilitare o disabilitare IntelliTrace passando a Strumenti>Opzioni>IntelliTrace.

La sessione di diagnostica termina quando si interrompe il debug.

Nota

Usare il riavvio per ignorare la pagina di avvio ed eseguire automaticamente con le impostazioni precedenti con ALT+F2 o facendo clic su Debug > Performance Profiler.

Per altre informazioni, vedi:

Scheda Eventi

Durante una sessione di debug, la scheda Eventi della finestra Strumenti di diagnostica elenca gli eventi di diagnostica che si verificano. La categoria prefissi punto di interruzione, File e altri, consente di analizzare rapidamente l'elenco per una categoria o ignorare le categorie di cui non ti interessa.

Usare l'elenco a discesa Filtro per filtrare gli eventi all'interno e alla visualizzazione, selezionando o cancellando categorie specifiche di eventi.

Screenshot del filtro eventi di diagnostica.

Screenshot del filtro eventi di diagnostica

Usare la casella di ricerca per trovare una stringa specifica nell'elenco di eventi. Di seguito sono riportati i risultati di una ricerca del modello di nome file corrispondente a tre eventi:

Screenshot della ricerca di eventi di diagnostica.

Usare la casella di ricerca per trovare una stringa specifica nell'elenco di eventi. Di seguito sono riportati i risultati di una ricerca per il nome della stringa corrispondente a quattro eventi:

Screenshot della ricerca di eventi di diagnostica

Per altre informazioni, vedere l'articolo relativo a come eseguire ricerche e applicare filtri nella 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.