Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo argomento descrive come usare gli strumenti di monitoraggio delle prestazioni di Windows Performance Toolkit per produrre profili di prestazioni approfonditi per le applicazioni WinUI.
Come si utilizza Windows Performance Recorder per monitorare le app WinUI?
Windows Performance Recorder (WPR) può essere usato per creare registrazioni dettagliate di Event Tracing for Windows (ETW) del comportamento del sistema e dell'applicazione e dell'utilizzo delle risorse in base ai profili predefiniti. Queste registrazioni ETW possono quindi essere elaborate dal Windows Performance Analyzer (WPA) per produrre un set di grafici e tabelle per semplificare l'utilizzo e l'analisi approfondita dell'utilizzo della CPU, problemi di alimentazione, prestazioni di sistema o applicazioni scarse e altri problemi di prestazioni.
Annotazioni
Sebbene siano presenti sia versioni GUI che della riga di comando di WPR, questo argomento si riferisce solo alla versione GUI (vedere Introduzione a WPR per altri dettagli su entrambe le versioni).
Profili WPR
I profili WPR vengono usati per raccogliere informazioni su vari aspetti e comportamenti dell'app.
Nell'immagine seguente viene visualizzata la finestra Windows Performance Recorder con il profilo "Utilizzo CPU" (utilizzo CPU per ogni CPU nel sistema) e il profilo "Attività XAML" (eventi dei provider correlati a XAML, ad esempio WinUI) selezionati.
Come usare Windows Performance Analyzer con le app WinUI?
WinUI è un'API dichiarativa in modalità mantenuta in cui l'app descrive un albero di UIElements e winUI esegue il layout ed esegue il rendering. Questa operazione viene eseguita sul thread dell'interfaccia utente in batch denominati "frame", che dovrebbero essere completati rapidamente, idealmente entro un intervallo di aggiornamento del display. Quando i fotogrammi vengono eseguiti a lungo, non solo ritarda gli aggiornamenti dalla visualizzazione, ma impedisce anche al thread dell'interfaccia utente di gestire l'input. I fotogrammi lenti, anche se non l'unico motivo per i problemi di velocità di risposta, sono uno dei più comuni.
Installare il plug-in "Analisi dei frame XAML"
WinUI registra gli eventi ETW che tengono traccia dell'avvio e dell'arresto di ogni fotogramma (come illustrato nello screenshot seguente della tabella "Eventi generici" WPA). Tuttavia, poiché la durata di ogni fotogramma deve essere calcolata manualmente, è difficile identificare le occorrenze di fotogrammi rallentati.
Un nuovo plugin per tabella "Analisi frame XAML" è incluso con Windows Assessment Toolkit (ADK) 10.1.26100.1 e versioni successive per risolvere questo problema. Questa tabella calcola e mostra la durata di ogni fotogramma (insieme ad altre operazioni che richiedono molto tempo).
Annotazioni
La tabella "Analisi dei frame XAML" richiede Windows Performance Analyzer (WPA) da Windows ADK 10.1.26100.1 o versione successiva. La versione di WPR usata per prendere la traccia non importa.
Dopo aver installato ADK, la tabella "Analisi dei fotogrammi XAML" deve essere abilitata modificando il file di configurazione "perfcore.ini" nella cartella WPA (in genere C:\Programmi (x86)\Windows Kits\10\Windows Performance Toolkit). A tale scopo, chiudere tutte le istanze aperte di WPA, aprire "perfcore.ini" in un editor di testo, aggiungere perf_xaml.dll all'elenco delle dll e salvare e chiudere il file. Riavviare WPA, che dovrebbe ora visualizzare il grafico "Analisi dei frame XAML" nella parte inferiore della sezione Attività di sistema.
Usare il plug-in "Analisi dei frame XAML"
L'analisi dei frame Xaml supporta due visualizzazioni (entrambe le visualizzazioni mostrano le stesse colonne):
- "Frame Xaml interessante" (impostazione predefinita): mostra i frame WinUI in base all'euristica che identifica quelli che potrebbero causare problemi di reattività. Questi corrispondono alle aree che iniziano con operazioni come l'inizializzazione di WinUI, la navigazione del frame o la visualizzazione del flyout e si arrestano con la fine del fotogramma successivo. Questi scenari in genere comportano modifiche estese all'albero UIElement e sono i più vulnerabili ai problemi di prestazioni.
- "Tutte le informazioni XAML" - Mostra tutti i frame WinUI da tutti i processi nella traccia. Per operazioni come un frame o un passaggio di layout, il plug-in calcola automaticamente e visualizza le durate in base agli eventi Start e Stop.
Lo screenshot seguente illustra come passare tra le visualizzazioni dell'analisi dei fotogrammi Xaml.
Entrambe le visualizzazioni Analisi frame Xaml includono le colonne seguenti:
| Titolo | Valore |
|---|---|
| Processo | Nome e ID del processo |
| ID del thread | ID del thread |
| Tipo | Descrive l'evento corrispondente alla riga. I valori possibili includono:
|
| ÈInteressante | Indica se la riga è considerata interessante. Solo le righe interessanti vengono visualizzate nella visualizzazione Interesting Xaml Frames. |
| Durata (ms) | Durata della riga. Calcolato dagli eventi di inizio e interruzione. |
| Peso (ms) | Tempo effettivo di esecuzione della CPU corrispondente alla durata. |
| Avvia (s) | Ora di inizio dell'evento |
| Stop (s) | Ora dell'evento Stop |
Le colonne possono essere ordinate in base al tipo o alla durata per identificare potenziali problemi, ad esempio i fotogrammi di durata più costosi e più lunghi nella traccia (vedere l'immagine seguente). È anche possibile eseguire il drill-down in righe specifiche per identificare le operazioni costose e le potenziali ottimizzazioni.