Condividi tramite


Scelta tra Profiler prestazioni di Visual Studio, Windows Performance Toolkit e PerfView

Questa guida fornisce un confronto generale delle principali tecnologie di profilatura delle prestazioni per utilizzo generico in Microsoft: Profiler prestazioni di Visual Studio, Windows Performance Toolkit e PerfView.

Questi strumenti consentono di diagnosticare e comprendere le caratteristiche delle prestazioni delle applicazioni in Windows. L'obiettivo di questa guida è fornire una panoramica dei casi in cui usare uno rispetto all'altro, evidenziare ognuno dei punti di forza e offrire una breve panoramica delle funzionalità che contengono.

Panoramica

Profiler prestazioni di Visual Studio viene creato dal team di Visual Studio per comprendere rapidamente le caratteristiche delle prestazioni di un'applicazione in fase di sviluppo all'interno del sistema di progetto di Visual Studio esistente. La sua forza è l'integrazione stretta con il progetto di sviluppo attivo, semplificando l'analisi degli scenari di prestazioni più comuni e una raccolta rapida e semplice di una singola applicazione.

Windows Performance Toolkit viene creato dal team di Windows per comprendere le caratteristiche a livello di sistema dell'intero PC contemporaneamente. Sebbene sia cresciuto a partire dalla necessità di analizzare hardware e driver, è molto efficace per comprendere anche i problemi software. La sua forza è la raccolta di grandi quantità di informazioni dall'intero computer contemporaneamente, quindi problemi multiprocesso, quelli che gestiscono hardware o driver e scenari complessi si abbinano perfettamente a questi strumenti.

PerfView viene creato dal team .NET per comprendere le prestazioni delle applicazioni .NET. Come Windows Performance Toolkit, può acquisire grandi quantità di informazioni dall'intero computer contemporaneamente. Si differenzia in relazione alla possibilità di visualizzare informazioni molto dettagliate sui servizi di runtime .NET, ad esempio Garbage Collection, compilazione JIT e pool di thread gestiti. PerfView può essere usato per applicazioni gestite, native e in modalità mista.

C'è una sovrapposizione tra questi strumenti. Spesso è possibile iniziare a esplorare un problema in uno strumento e passare a un altro per una visualizzazione diversa dello stesso scenario. In altri casi, uno degli strumenti sarà più efficace degli altri.

Installazione

Profiler prestazioni di Visual Studio è un componente di Visual Studio stesso ed è installabile tramite la stessa procedura guidata di installazione del resto dell'ambiente di sviluppo.

Windows Performance Toolkit è scaricabile separatamente come parte di Windows Assessment and Deployment Kit. Tuttavia, lo strumento Performance Recorder della riga di comando è preinstallato con Windows 10 e Windows 11 come wpr.exe disponibile nella variabile di percorso predefinita dalle shell come PowerShell e il prompt dei comandi.

L'analizzatore prestazioni è disponibile come applicazione in Microsoft Store.

PerfView è disponibile come download autonomo nella pagina Versioni di GitHub perfView. Non è richiesta l'installazione.

Personalizzazione per scenari avanzati di analisi delle prestazioni

Windows Performance Toolkit offre inoltre due punti di estendibilità che possono offrire scenari avanzati di analisi delle prestazioni.

  • Microsoft Performance Toolkit SDK gestisce l'elaborazione dei dati di traccia e consente agli sviluppatori di creare plug-in personalizzati da visualizzare all'interno di Windows Performance Analyzer.
  • .NET TraceProcessing consente la creazione di strumenti personalizzati in grado di elaborare le informazioni di traccia nelle tabelle risultanti ed è particolarmente utile per l'analisi automatizzata dei dati di traccia bulk.

PerfView è analogamente basato sulla libreria .NET TraceEvent per l'utilizzo di tracce delle prestazioni a livello di codice. TraceEvent può essere usato indipendentemente da PerfView per eseguire un'analisi personalizzata dei dati di traccia delle prestazioni.

Nota

Per il funzionamento degli scenari di analisi delle prestazioni, è necessario accedere ai simboli correlati all'applicazione Windows in fase di test. Durante la compilazione con Visual Studio, questi verranno posizionati come nelle impostazioni dello scenario di debug, compilate con la soluzione o acquisite dai server di simboli. Quando si analizzano altre librerie o componenti, è necessario individuare i simboli per tali componenti per completare l'analisi.

Considerazioni per la scelta di uno strumento

Lo strumento da scegliere dipende dallo scenario di prestazioni che si sta tentando di esplorare. Nella tabella seguente è riportato un confronto tra funzionalità e tratti tra gli strumenti:

Suggerimento

Per una regola generale, iniziare con Profiling di Visual Studio, quando possibile. Passare a Windows Performance Toolkit o PerfView quando si raggiungono i limiti delle operazioni che gli strumenti di Visual Studio possono eseguire.

Situazione Profiler prestazioni di Visual Studio Windows Performance Toolkit PerfView
Considerazioni generali sull'uso
Dimensioni file di traccia ✔️ 🆗 🆗
Acquisizione di strumenti ✔️ ✔️ ✔️
Kit di estendibilità ✔️ ✔️
Considerazioni sull'ambito del lavoro
Progetto o processo singolo ✔️ 🆗 🆗
Processi multipli ✔️ ✔️
Considerazioni relative all'hardware
Utilizzo CPU ✔️ ✔️ ✔️
Utilizzo GPU ✔️ ✔️
Utilizzo memoria ✔️ ✔️ ✔️
Input/output del dispositivo ✔️ ✔️
Consumo di energia ✔️
Handle di sistema ✔️ ✔️
Considerazioni sulla codifica supporto linguaggio
Supporto per C/C++ ✔️ ✔️ ✔️
Supporto per .NET ✔️ ✔️ ✔️
Supporto per JavaScript 🆗 🆗 🆗
Considerazioni sugli scenari
Event Tracing for Windows 🆗 ✔️ ✔️
Composizione ✔️
HTML/Edge/Internet Explorer/Webview ✔️
XAML/WinUI 🆗 ✔️ ✔️
Glitch e pipeline audio/video ✔️
Timing del database ✔️
Allocazione di oggetti gestiti e Garbage Collection ✔️ ✔️
Scenari personalizzati ✔️ ✔️

Chiave

  • ✔️ Ben supportato: progettato per l'attività prevista e ottiene risultati affidabili e dettagliati.
  • 🆗 Supportato: può richiedere una configurazione o passaggi aggiuntivi per ottenere i risultati desiderati. Può contenere un ambito limitato di azione all'interno della categoria.
  • ❌ Non supportato: non progettato per questo uso.

Considerazioni generali sull'uso

Per iniziare a usare l'analisi delle prestazioni, è consigliabile usare Profiler prestazioni di Visual Studio come funzionalità ben integrata all'interno della suite di sviluppo di Visual Studio esistente. È consigliabile usare Profiler prestazioni di Visual Studio su PerfView se soddisfa le proprie esigenze.

Per un'analisi delle prestazioni del sistema più complessa che potrebbe richiedere maggiore potenza e versatilità, è consigliabile usare Windows Performance Toolkit, costituito da due strumenti usati per eseguire attività di analisi delle prestazioni:

  • Windows Performance Recorder, disponibile sia come strumento da riga di comando che con un'interfaccia grafica, è responsabile dell'acquisizione della sessione di traccia.
  • Windows Performance Analyzer viene aperto in un secondo momento per post-elaborare i dati acquisiti e offrire una visualizzazione di analisi altamente personalizzabile.

Alcuni dei vantaggi offerti da Profiler prestazioni di Visual Studio includono:

  • Una buona introduzione all'analisi delle prestazioni nei domini principali.
  • Gestisce molte delle complessità dell'analisi e del debug automaticamente in base alla configurazione del progetto.
  • Evidenzia automaticamente le principali aree di preoccupazione.
  • È preferibile concentrarsi su una sola applicazione, con un set di dati più piccolo e più mirato e un ambito di acquisizione più piccolo.
  • La focalizzazione più specifica si traduce in un minor impatto su altre applicazioni e hardware del computer durante la profilatura, una dimensione complessiva ridotta in relazione ai file di traccia generati e archiviati e una maggiore velocità di elaborazione per la revisione delle informazioni al termine della raccolta.
  • L'avvio e il completamento di una traccia richiedono meno tempo, con una possibilità più rapida di esame e completamento perché Profiler prestazioni di Visual Studio riguarda solo l'applicazione e non l'intero sistema.
  • L'acquisizione dei dati e l'analisi risultante vengono tutte eseguite nell'ambito di Visual Studio, e le pagine di analisi vengono lanciate automaticamente alla conclusione della raccolta. Anche la visualizzazione report tende automaticamente a concentrare l'attenzione sui punti principali o sulle aree di azione.

Alcuni dei vantaggi offerti da Windows Performance Toolkit includono:

  • Per iniziare sono disponibili numerosi documenti e blog, forniti da parte dei team di prestazioni e diagnostica di Windows.
  • È preferibile acquisire file di grandi dimensioni, soprattutto dai sistemi occupati con attività in background. Si tratta di uno strumento catch-all per la raccolta di informazioni che verranno quindi filtrate in seguito nell'interfaccia di Windows Performance Analyzer.
  • Possibilità di personalizzazione per scenari avanzati di analisi delle prestazioni utilizzando punti di estendibilità. (Vedere di seguito)

Alcuni dei vantaggi offerti da PerfView includono:

  • Documentazione predefinita completa e video esplicativi accessibili tramite Internet collegati dall'interno dell'app.
  • È facile eseguire la distribuzione in ambienti di produzione semplicemente copiando PerfView.exe.
  • Modalità flight recorder per l'acquisizione di problemi di difficile riproduzione.
  • Diagnostica molto dettagliata per i servizi di runtime .NET.
  • Estendibile per le visualizzazioni personalizzate.

Considerazioni sull'ambito del lavoro

Per le analisi che circondano una singola applicazione e soprattutto un singolo processo, tutti gli strumenti sono in grado di raccogliere e comprendere le prestazioni. Il vantaggio, tuttavia, sarebbe laterale con Profiler prestazioni di Visual Studio, soprattutto quando l'origine dell'applicazione e il sistema di progetto sono già disponibili. Il motore del Profiler prestazioni di Visual Studio è progettato per raccogliere informazioni su CPU, GPU e memoria da un file binario in modo semplificato alla funzionalità di debug F5. Anche se si concentra solo sull'applicazione in questione, questo meccanismo di acquisizione offre una risposta e un ciclo di sviluppo più stringenti.

Scegliere PerfView se Visual Studio non dispone delle funzionalità necessarie, non può essere eseguito a causa dei requisiti di raccolta (comuni negli ambienti di produzione) o sono necessarie funzionalità di diagnostica .NET più dettagliate.

Per situazioni caratterizzate da maggiore complessità che includono più richieste tra processi, dispositivi hardware e relativi driver o approfondimenti relativi alle tecnologie delle piattaforme Windows, Windows Performance Toolkit è la scelta ottimale.

Considerazioni relative all'hardware

Profiler prestazioni di Visual Studio, Windows Performance Toolkit e PerfView possono diagnosticare CPU e memoria per i componenti hardware principali, con Profiler prestazioni di Visual Studio e Windows Performance Toolkit che supportano ulteriormente la GPU. Gli strumenti sono generalmente ben abbinati all'analisi introduttiva in queste aree.

L'utilizzo della CPU può essere analizzato con tutti e tre gli strumenti e viene in genere acquisito tramite il campionamento. Il campionamento acquisisce periodicamente le tracce dello stack dall'applicazione e fornisce una classificazione sulla frequenza con cui appaiono. Entrambi gli strumenti possono modificare questo comportamento in modo da usare la strumentazione per la contabilità esatta.

L'utilizzo della GPU può essere analizzato con Profiler prestazioni di Visual Studio e Windows Performance Toolkit che acquisisce una panoramica generale delle informazioni.

L'utilizzo della memoria può essere analizzato con tutti e tre gli strumenti che raccolgono informazioni sullo spazio heap e gli stack associati alle allocazioni nell'heap.

Quando si verificano scenari più complessi, ad esempio l'analisi di rete, disco, dispositivi, handle o consumo energetico complessivo del sistema, Windows Performance Toolkit è più attrezzato per gestire l'analisi. Questi dati vengono raccolti in modo ottimale direttamente dal sistema operativo durante l'invio delle richieste ai vari componenti hardware. Windows Performance Toolkit viene sviluppato in combinazione con il sistema operativo, quindi è pronto e in grado di raccogliere questa categoria di informazioni più mirata al sistema.

Considerazioni sulla codifica supporto linguaggio

Windows Performance Toolkit è incentrato principalmente sul supporto per C e C++, perché questi linguaggi vengono usati nella codebase del sistema operativo Windows.

Il supporto di Profiler prestazioni di Visual Studio è incentrato su un'ampia gamma di linguaggi di programmazione, a partire da tecnologie di origine .NET come C# e ASP.NET che si espandono poi verso l'esterno.

PerfView supporta applicazioni .NET e native (C e C++). Ha una conoscenza approfondita dei runtime .NET e delle funzionalità per i carichi di lavoro Web ASP.NET.

Ciò non significa che Visual Studio non è in grado di analizzare il codice C o C++ o che Windows Performance Analyzer non è in grado di analizzare le applicazioni .NET o che PerfView non è in grado di analizzare le applicazioni Web. È consigliabile iniziare con lo strumento più strettamente corrispondente all'applicazione analizzata per sfruttare i vantaggi di ogni strumento.

Considerazioni sugli scenari

Tutti gli strumenti contengono diverse opzioni basate su scenari per studiare le prestazioni dell'applicazione.

Le opzioni di Profiler prestazioni di Visual Studio tendono a concentrarsi su .NET, sull'interfaccia utente e sui database che risiedono all'interno dell'applicazione analizzata.

Windows Performance Toolkit tende a concentrarsi su componenti e framework del sistema operativo come composizione, visualizzazioni del browser e glitch nelle pipeline di elaborazione in tempo reale.

Per gli scenari che richiedono una soluzione più personalizzata, Windows Performance Recorder può combinare sia la raccolta a livello di sistema che i dati di raccolta correlati all'applicazione in una singola sessione di registrazione. Questa funzionalità consente a uno sviluppatore di applicazioni di offrire una soluzione completa per la distribuzione ai clienti per richiedere dati sulle prestazioni dall'hardware che potrebbero differire da quelli usati per sviluppare il prodotto. Altre informazioni su questo meccanismo sono disponibili nella serie di blog Creazione di profili personalizzati a opera del team prestazioni e diagnostica di Windows.

PerfView è destinato a indagini approfondite su applicazioni e runtime .NET, ma è altrettanto in grado di eseguire indagini a livello di sistema operativo e multiprocesso.

Riepilogo

Profiler prestazioni di Visual Studio, Windows Performance Toolkit e PerfView sono tre strumenti affidabili di Microsoft disponibili per comprendere le prestazioni dell'applicazione. La scelta dello strumento più adatto alle proprie esigenze richiede una serie di considerazioni relative alla situazione specifica. Speriamo che questa guida fornirà le informazioni necessarie per effettuare scelte di analisi delle prestazioni saggie, ma invitiamo anche a inviare commenti e suggerimenti in questa pagina di seguito oppure, per problemi specifici relativi alle prestazioni di sviluppo di Windows, a segnalare il problema nel repository Windows Dev Performance.