Analizzare l'utilizzo delle risorse e l'attività del thread dell'interfaccia utente (XAML)
Usare il profiler della sequenza temporale dell'applicazione per individuare e risolvere i problemi di prestazioni legati all'interazione con l'applicazione nelle applicazioni XAML. Questo strumento consente di migliorare le prestazioni dell'applicazione XAML visualizzando una visualizzazione dettagliata dell'utilizzo delle risorse delle applicazioni. È possibile analizzare il tempo impiegato dall'applicazione per preparare i frame dell'interfaccia utente (layout e rendering), la manutenzione delle richieste di rete e disco e in scenari come Avvio dell'applicazione, Caricamento pagine e ridimensionamento di Windows.
Questo strumento sostituisce lo strumento velocità di risposta dell'interfaccia utente XAML che faceva parte del set di strumenti di diagnostica nelle versioni precedenti di Visual Studio.
È possibile usare questo strumento nelle piattaforme seguenti:
- App di Windows universali (in Windows 10 e versioni successive)
- Windows 8.1
- Windows Presentation Foundation (.NET 4.0 e versioni successive)
- Windows 7
Nota
È possibile raccogliere e analizzare i dati sull'utilizzo della CPU e il consumo energetico insieme ai dati ApplicationTimeline. Vedere Eseguire gli strumenti di profilatura nelle build di rilascio o di debug.
Raccogliere i dati della sequenza temporale dell'applicazione
È possibile profilare la velocità di risposta dell'app nel computer locale, nel dispositivo connesso, nel simulatore o negli emulatori di Visual Studio o in un dispositivo remoto. Vedere Eseguire gli strumenti di profilatura nelle build di rilascio o di debug.
Suggerimento
Se possibile, eseguire l'app direttamente nel dispositivo. Le prestazioni dell'applicazione osservate nel simulatore o tramite una connessione Desktop remoto potrebbero non corrispondere alle prestazioni effettive nel dispositivo. D'altra parte, la raccolta dei dati tramite Visual Studio Remote Tools non influisce sui dati sulle prestazioni.
Ecco i passaggi di base:
Aprire l'app XAML.
Fare clic su Debug/Profiler delle prestazioni. Nella finestra .diagsession dovrebbe essere visualizzato un elenco degli strumenti di profilatura.
Selezionare Cronologia dell'Applicazione e quindi fare clic su Avvia nella parte bassa della finestra.
Nota
Potrebbe essere visualizzata una finestra di Controllo account utente che richiede l'autorizzazione per eseguire VsEtwCollector.exe. Fare clic su Sì.
Esegui lo scenario a cui sei interessato nel profilo della tua app per raccogliere dati sulle prestazioni.
Per arrestare la profilazione, ritornare alla finestra .diagsession e fare clic su Arresta nella parte superiore della finestra.
Visual Studio analizza i dati raccolti e visualizza i risultati.
Analizzare i dati di profilatura della sequenza temporale
Dopo aver raccolto i dati di profilatura, è possibile usare questi passaggi per avviare l'analisi:
Visualizzare le informazioni contenute nei grafici thread dell'interfaccia utente
e velocità effettiva visiva (FPS ) e quindi usare le barre di spostamento della sequenza temporale per selezionare un intervallo di tempo da analizzare.Usando le informazioni contenute nei grafici di utilizzo del thread dell'interfaccia utente o della velocità effettiva visiva (FPS) , esaminare i dettagli nella visualizzazione Dettagli della Timeline per individuare possibili cause di mancanza di velocità di risposta.
Scenari dei report, categorie ed eventi
Lo strumento cronologia dell'applicazione visualizza i dati di temporizzazione per scenari, categorie ed eventi correlati alle prestazioni XAML.
Sequenza temporale della sessione di diagnostica
Il righello nella parte superiore della pagina mostra la sequenza temporale per le informazioni profilate. Questa sequenza temporale si applica sia al grafico dell'utilizzo del thread dell'interfaccia utente che al grafico della velocità effettiva visiva . È possibile limitare l'ambito del report trascinando le barre di spostamento nella sequenza temporale per selezionare un segmento della sequenza temporale.
La sequenza temporale visualizza eventuali contrassegni utente che hai inserito e gli eventi del ciclo di vita dell'attivazione dell'app.
Grafico dell'utilizzo dei thread dell'interfaccia utente
Il grafico dell'utilizzo del thread dell'interfaccia utente (%) è un grafico a barre che visualizza la quantità relativa di tempo impiegato in una categoria durante un periodo di raccolta.
Grafico della velocità effettiva visiva (FPS)
Il grafico a linee
Dettagli della sequenza temporale
La visualizzazione dei dettagli consente di dedicare la maggior parte del tempo all'analisi del report. Mostra l'uso della CPU da parte dell'applicazione categorizzata dal sottosistema UI Framework o dal componente di sistema che ha utilizzato la CPU.
Sono supportati gli eventi seguenti:
Nome | Descrizione |
---|---|
analisi | Tempo impiegato per l'analisi dei file XAML e la creazione di oggetti. Espandendo un nodo di analisi |
disposizione | Nelle applicazioni di grandi dimensioni, migliaia di elementi possono essere visualizzati sullo schermo contemporaneamente. Questa visualizzazione può comportare una bassa frequenza dei fotogrammi dell'interfaccia utente e corrispondentemente scarsa velocità di risposta dell'applicazione. L'evento Layout determina in modo accurato il costo della disposizione di ogni elemento, ovvero il tempo impiegato in Arrange, Measure, ApplyTemplate, ArrangeOverride e MeasureOverride. Compila anche gli alberi visivi che hanno partecipato a una fase di layout. È possibile usare questa visualizzazione per determinare quali alberi logici eliminare o per valutare altri meccanismi di differimento per ottimizzare il passaggio di layout. |
Rendering | Tempo impiegato per disegnare elementi XAML sullo schermo. |
I/0 | Tempo impiegato per recuperare i dati dal disco locale o dalle risorse di rete a cui si accede tramite l'API Microsoft Windows Internet (WinINet) |
Codice dell'app | Tempo impiegato per l'esecuzione del codice dell'applicazione (utente) non correlato all'analisi o al layout. |
Xaml Altro | Tempo impiegato per l'esecuzione del codice di runtime XAML. |
Mancia
Scegliere lo strumento Utilizzo della CPU insieme allo strumento Sequenza temporale dell'applicazione all'avvio della profilazione per visualizzare i metodi dell'app eseguiti sul thread dell'interfaccia utente. Lo spostamento del codice dell'app a esecuzione prolungata in un thread in background può migliorare la velocità di risposta dell'interfaccia utente.
Personalizzazione dei dettagli della sequenza temporale
Usare la barra degli strumenti dettagli sequenza temporale per ordinare, filtrare e specificare le annotazioni delle voci di visualizzazione dei dettagli della sequenza temporale.
Nome | Descrizione |
---|---|
Ordina per | Ordinare in base all'ora di inizio o alla lunghezza degli eventi. |
Aggiunge o rimuove una categoria di primo livello Frame che raggruppa gli eventi per fotogramma. | |
Filtra l'elenco in base alle categorie selezionate e alla lunghezza degli eventi. | |
Consente di specificare le annotazioni agli eventi. |
Contenuto correlato
- blog del team WPF: Nuovo strumento di analisi delle prestazioni dell'interfaccia utente per le applicazioni WPF
- Procedure consigliate per le prestazioni per le app UWP che usano C++, C# e Visual Basic
- Ottimizzare le prestazioni dell'applicazione WPF
- Profilazione in Visual Studio
- Prima occhiata agli strumenti di profilatura