Condividi tramite


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.

La sequenza temporale dell'applicazione è uno degli strumenti che puoi avviare con il comando Performance Profiler.

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:

  1. Aprire l'app XAML.

  2. Fare clic su Debug/Profiler delle prestazioni. Nella finestra .diagsession dovrebbe essere visualizzato un elenco degli strumenti di profilatura.

  3. Selezionare Cronologia dell'Applicazione e quindi fare clic su Avvia nella parte bassa della finestra.

    Strumento di sequenza temporale dell'applicazione selezionato

    Nota

    Potrebbe essere visualizzata una finestra di Controllo account utente che richiede l'autorizzazione per eseguire VsEtwCollector.exe. Fare clic su .

  4. Esegui lo scenario a cui sei interessato nel profilo della tua app per raccogliere dati sulle prestazioni.

  5. 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.

    report del profilatore della sequenza temporale

Analizzare i dati di profilatura della sequenza temporale

Dopo aver raccolto i dati di profilatura, è possibile usare questi passaggi per avviare l'analisi:

  1. 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.

  2. 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

sequenza temporale prestazioni e 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

Grafico Utilizzo CPU

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)

grafico della portata visiva

Il grafico a linee velocità effettiva visiva (FPS) mostra i fotogrammi al secondo (FPS) nell'interfaccia utente e nel thread di composizione per l'app.

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 in dettagli sequenza temporale viene visualizzata la catena di dipendenze di tutti i file XAML analizzati a causa dell'evento radice. Questo suggerimento consente di identificare l'analisi dei file e la creazione di oggetti non necessari in scenari sensibili alle prestazioni e ottimizzarli.
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.
Raggruppare eventi per frame Aggiunge o rimuove una categoria di primo livello Frame che raggruppa gli eventi per fotogramma.
filtro elenco dettagli sequenza temporale Filtra l'elenco in base alle categorie selezionate e alla lunghezza degli eventi.
Personalizzare le informazioni dettagliate della sequenza temporale Consente di specificare le annotazioni agli eventi.