Condividi tramite


Strumenti di analisi delle prestazioni per WPF

Aggiornamento: novembre 2007

WPF fornisce una suite di strumenti di analisi delle prestazioni che consentono di esaminare il comportamento dell'applicazione in fase di esecuzione e di determinare quale tipo di ottimizzazione delle prestazioni è possibile applicare. Nella tabella riportata di seguito sono elencati i cinque strumenti di analisi delle prestazioni inclusi nello strumento Windows SDK, WPFPerf:

Strumento

Descrizione

Perforator

Consente di analizzare il comportamento di rendering.

Visual Profiler

Consente di analizzare l'utilizzo dei servizi WPF, come la gestione del layout e degli eventi, tramite gli elementi della struttura ad albero visuale.

Analizzatore di working set

Consente di analizzare le caratteristiche del working set dell'applicazione.

Traccia eventi

Consente di analizzare gli eventi e di generare i file del log eventi.

Visualizzatore delle informazioni di analisi ETW

Consente di registrare, visualizzare e sfogliare i file di log di Traccia eventi per Windows (ETW, Event Tracing for Windows) in un formato di interfaccia utente di WPF.

Nel presente argomento sono contenute le seguenti sezioni.

  • Utilizzo degli strumenti di analisi delle prestazioni
  • Perforator
  • Visual Profiler
  • Analizzatore di working set
  • Traccia eventi
  • Visualizzatore delle informazioni di analisi ETW
  • Altri strumenti per le prestazioni
  • Argomenti correlati

Utilizzo degli strumenti di analisi delle prestazioni

Dopo aver installato Windows SDK, è possibile installare la suite di prodotti WPF per l'analisi delle prestazioni.

Nota

Prima dell'installazione della suite, rimuovere le versioni precedenti di WPFPerf.exe.

Quando si esegue WPFPerf per la prima volta, viene visualizzata la finestra di dialogo Aggiungi strumento:

Finestra di dialogo Aggiungi strumento

Finestra di dialogo Add Tool

Selezionare gli strumenti desiderati, quindi scegliere OK.

Nota

Per utilizzare gli strumenti di analisi delle prestazioni, è necessario che l'account utente disponga dell'accesso amministrativo.

Perforator

Perforator è uno strumento per l'analisi delle prestazioni che consente di esaminare il comportamento di rendering. La finestra principale di Perforator visualizza una serie di opzioni per l'analisi di un comportamento di rendering molto specifico in alcune parti dell'applicazione.

Finestra principale di Perforator

Finestra principale di Perforator

Perforator consente di impostare una serie di opzioni che hanno effetto sul comportamento di rendering dell'applicazione.

Opzione

Descrizione

Disegna rendering software con il viola

Consente di disegnare con il viola tutte le aree sottoposte a rendering tramite la pipeline di rendering del software. Sono incluse le destinazioni di rendering del software, il relativo contenuto 3D e il fallback di software per primitiva.

Cancella buffer nascosto prima dell'aggiornamento

Consente di cancellare il contenuto di tutte le finestre dell'applicazione prima di ogni operazione di disegno.

Mostra sovrapposizione dell'aggiornamento di aree modificate

Indica tutti gli aggiornamenti eseguiti da WPF nella schermata per mezzo della ricolorazione. L'utente può quindi visualizzare quando e dove le aree vengono ridisegnate in un'applicazione.

Disattiva supporto aree modificate

Consente a WPF di ridisegnare l'intera finestra ogni qualvolta venga applicata una modifica. Di solito viene ridisegnata solo la parte della finestra che è stata modificata. L'attivazione di questa opzione determina un rallentamento dell'esecuzione di rendering da parte dell'applicazione.

Disattiva effetti di opacità

Disattiva determinati usi di opacità potenzialmente intensivi in termini di prestazioni.

Disattiva fallback di software per primitiva

Disattiva il fallback del software per ogni singola primitiva di rendering. Ciò non consente di disattivare le destinazioni di rendering intermedio del software e il rendering di altro software.

Disattiva ridimensionamento dell'immagine di alta qualità

Disattiva il ridimensionamento di grandi immagini a dimensioni inferiori.

Disattiva rendering 3D

Disattiva tutte le operazioni di rendering 3D

Opzione Attiva controllo di debug

La casella di controllo Attiva controllo di debug consente di attivare o disattivare l'accesso alla memoria condivisa di WPF. Per impostazione predefinita, Perforator attiva questa opzione all'avvio e la disattiva alla chiusura. Nel caso di chiusura anomala dello strumento, riavviare lo strumento e deselezionare manualmente la casella di controllo Attiva controllo di debug allo scopo di disattivare l'accesso alla memoria condivisa di WPF. Riavviare quindi Perforator e l'applicazione di WPF sottoposta ad analisi.

Nota

L'attivazione di questa opzione potrebbe determinare un lieve incremento nell'utilizzo della memoria e un leggero calo nelle prestazioni durante l'esecuzione delle applicazioni di WPF. Assicurarsi pertanto che Perforator disattivi correttamente questa opzione.

Impostazione della chiave di Registro di sistema

La casella di controllo Attiva controllo di debug aggiunge o elimina un'impostazione della chiave di Registro di sistema di WPF. Per aggiungere l'impostazione manualmente, eseguire il comando riportato di seguito da una finestra di comando:

reg add HKLM\SOFTWARE\Microsoft\Avalon.Graphics /v EnableDebugControl /t REG_DWORD /d 1 /f

Per eliminare manualmente l'impostazione della chiave di Registro di sistema, eseguire il comando riportato di seguito da una finestra di comando:

reg delete HKLM\SOFTWARE\Microsoft\Avalon.Graphics /v EnableDebugControl /f

Utilizzo di Perforator

Per utilizzare Perforator, avviare l'applicazione di WPF di cui si desidera analizzare il comportamento di rendering. Una volta avviata l'applicazione, fare clic sul pulsante Aggiorna in Perforator. L'applicazione deve quindi apparire nella casella di riepilogo di Perforator delle applicazioni di WPF. Selezionare l'applicazione e le opzioni di rendering che si desidera analizzare. Immediatamente i valori dei dati di Perforator, come la frequenza di aggiornamento dei frame, riflettono il comportamento di rendering dell'applicazione.

Opzioni di rendering e applicazione selezionate in Perforator

Finestra principale di Perforator con opzioni selezionate

La schermata seguente visualizza l'applicazione d'esempio PhotoDemo con le opzioni di rendering "Disegna rendering software con il viola" e "Mostra supporto aree modificate" attivate:

L'applicazione di esempio PhotoDemo visualizza il comportamento di rendering

Applicazione PhotoDemo con opzioni di rendering di Perforator

Le sezioni seguenti illustrano i principali problemi delle prestazioni impliciti nel rendering e la modalità con cui le opzioni di Perforator e l'output dei dati consentono di diagnosticare tali problemi.

Evitare il rendering del software

Poiché la pipeline del rendering hardware di WPF è sostanzialmente più rapida di quella del software, minore è l'interfaccia utente dell'applicazione che esegue il rendering nel software, più veloce sarà il rendering in tale applicazione. Di solito il tempo necessario per eseguire il rendering di un'area nel software è proporzionale al numero di pixel sottoposti a rendering. Prestare pertanto attenzione ad aree ampie sottoposte a rendering tramite la pipeline del software; le aree piccole creano meno problemi.

Di seguito sono riportate le opzioni di Perforator che consentono di rilevare i problemi di rendering del software:

  • Disegna rendering software con il viola: consente di disegnare con il colore viola tutte le aree sottoposte a rendering tramite la pipeline di rendering del software. Sono incluse le destinazioni di rendering del software, il relativo contenuto 3D e il fallback di software per-primitiva.

  • Conta destinazioni di rendering software: consente di contare le destinazioni del rendering a finestra intera eseguite esclusivamente nel software. Se il totale non è 0, ciò rappresenta un problema di prestazioni significativo, di solito collegato alla configurazione della macchina o alla presenza di finestre sovrapposte. Accertarsi che sia attivato Microsoft Direct3D (eseguire dxdiag), che tutti i monitor sia impostati sulla profondità in bit di 32 bit per pixel (BPP) e che Microsoft DirectX 9.0 supporti la scheda grafica.

  • Conta destinazioni di rendering hardware: consente di contare le destinazioni del rendering a finestra intera in esecuzione nell'hardware. È necessario che questo numero sia uguale a quello delle finestre dell'applicazione, moltiplicato per il numero delle schede video. Ciò indica che, ove possibile, l'applicazione dispone di accelerazione hardware.

Evitare quantità elevate di destinazioni di rendering intermedio

Le destinazioni di rendering intermedio sono immagini supplementari che WPF deve realizzare per avere contenuto pronto per il disegno sulla schermata.

  • Numero max di IRT SW/HW per frame: mostra il numero massimo di destinazioni di rendering intermedio relativo a software o hardware applicate per il rendering di qualsiasi frame dell'applicazione. Le destinazioni di rendering intermedio di solito sono determinate dall'uso di DrawingBrush, VisualBrush, Opacity su un Visual, o dalle modalità di disegno su un TileBrush. Se questo numero è molto alto, potrebbe indicare che il runtime di WPF sta lavorando molto per eseguire il rendering dell'applicazione.

Parametri di prestazione utili

  • Frequenza aggiuntiva rettangolo modificato: indica che vengono attivati rapidi aggiornamenti nell'applicazione.

  • Frequenza di aggiornamento dei frame: indica la frequenza con cui viene eseguito il rendering dell'applicazione sulla schermata. Per applicazioni senza animazione, questo valore deve essere vicino allo 0, poiché le ottimizzazioni di aree modificate devono evitare il disegno, tranne se necessario. Questo numero deve essere considerato una previsione.

  • Utilizzo di memoria video previsto: tiene traccia di ampie allocazioni della memoria video eseguite direttamente da WPF (trame e destinazioni di rendering). Non tiene traccia delle allocazioni eseguite da un driver video durante il rendering, delle compilazioni determinate dalla compilazione e dal caricamento di pixel o vertex shaker oppure dalle allocazioni di buffer index o vertex. Si noti che il superamento della quantità disponibile di memoria texture determina di solito un sovraccarico sul software della logica di rendering di WPF e che più display (multi-mon) hanno un effetto moltiplicativo sulla quantità della memoria video necessaria per un'applicazione.

Supporto delle aree modificate

Poiché Windows Presentation Foundation (WPF) aggiorna solo porzioni di finestra secondo necessità, può essere utile visualizzare quale proporzione della finestra viene aggiornata in qualsiasi momento. Le opzioni seguenti consentono di visualizzare i comportamenti di aggiornamento.

  • Mostra sovrapposizione dell'aggiornamento di aree modificate: consente di indicare tutti gli aggiornamenti eseguiti da WPF nella schermata per mezzo della ricolorazione. L'utente può quindi visualizzare quando e quali aree vengono ridisegnate in un'applicazione in esecuzione.

  • Cancella buffer nascosto prima del rendering: consente di cancellare il contenuto della finestra prima di ogni singola operazione di disegno.

  • Disattiva supporto aree modificate: consente a WPF di ridisegnare l'intera finestra ogni qualvolta venga eseguita una modifica invece di ridisegnare solo la porzione della finestra che è cambiata. Ciò può essere utile per forzare l'aggiornamento dell'intera finestra, anche se è necessario prestare attenzione al fatto che questo causa un rallentamento nell'esecuzione del rendering da parte dell'applicazione.

Disattivazione delle funzionalità di rendering

Perforator consente di disattivare determinate funzioni impegnative in termini di prestazioni al fine di individuare se siano causa di colli di bottiglia nell'applicazione.

  • Disattiva effetti di opacità: consente di disattivare determinati usi di opacità potenzialmente intensivi in termini di prestazioni. Per evitare questo problema di prestazioni in genere, valutare di impostare l'opacità su un oggetto di livello basso, come Brush, invece che su un oggetto di livello alto come Button.

  • Disattiva fallback di software per primitiva: consente di disattivare il fallback del software per ogni singola primitiva di rendering. Ciò non consente di disattivare le destinazioni di rendering intermedio del software e il rendering di altro software.

  • **Disattiva ridimensionamento di immagine di alta qualità:**WPF ridimensiona le immagini di grandi dimensioni per un migliore aspetto in caso di visualizzazione ridotta. Questa operazione è impegnativa in termini di prestazioni, soprattutto in applicazioni che presentano immagini di grandi dimensioni visualizzate nella schermata con dimensioni ridotte. L'opzione consente di disattivare questo ridimensionamento per valutare la possibilità che sia l'origine di un problema di prestazioni. Per evitarlo, considerare di decodificare le immagini a una dimensione vicina a quella con cui vengono visualizzate.

  • Disattiva rendering 3D: disattiva tutte le operazioni di disegno in 3D.

Visual Profiler

Visual Profiler è uno strumento di prestazioni che consente l'analisi dell'uso dei servizi di WPF, come la gestione del layout e degli eventi, tramite gli elementi della struttura ad albero visuale. Con l'esame dell'output di analisi di questo strumento, è possibile determinare quali elementi visivi dell'applicazione potrebbero causare colli di bottiglia a livello di prestazioni. La finestra principale di Visual Profiler visualizza una serie di opzioni che consentono di specificare la modalità di analisi dell'applicazione:

  • Intervallo di aggiornamento, ovvero la granularità del tempo utilizzato durante l'analisi.

  • Sovrapposizione visualizzata, ovvero l'opzione di sovrapposizione visualizzata per conoscere l'impiego delle risorse CPU: sovrapposizioni di colore rosso più scuro indicano un impiego superiore delle risorse CPU.

Il valore dell'analisi visiva

Il Visual Profiler di WPF presenta problemi di prestazioni nell'ambito dei blocchi di compilazione di base che vengono utilizzati per realizzare scene visive nell'applicazione. Tali blocchi di compilazione includono oggetti di livello alto, come i controlli Button e TextBlock, e oggetti di livello basso, come gli elementi Line e Ellipse. Invece di descrivere i problemi di prestazioni in termini di grafici chiamate dei nomi funzione, Visual Profiler descrive questi problemi mediante la rappresentazione di oggetti visivi. Ciò è simile alla modalità con cui lo strumento di Windows SDK, UI Spy, rappresenta le informazioni. Per ulteriori dettagli, vedere UI Spy (UISpy.exe).

Al fine di analizzare la portata dei problemi di prestazioni di WPF, è necessario comprendere il ruolo e l'ambito dei servizi di WPF sottostanti. Questi servizi includono il layout, il rendering e l'animazione. Visual Profiler offre una presentazione grafica della modalità di allocazione dei servizi di WPF tra gli oggetti dell'applicazione. Ad esempio, quando Visual Profiler visualizza la struttura ad albero visuale degli oggetti dell'applicazione, sovrappone diverse sfumature di rosso sugli oggetti al fine di rappresentare la relativa quantità di risorse utilizzate dall'oggetto. Un oggetto visualizzato con una sovrapposizione di colore rosso più scuro rappresenta una proporzione più alta delle risorse rispetto a un oggetto con una sovrapposizione di colore rosso più chiaro. E ancor più importante, Visual Profiler fornisce un resoconto analitico della quantità di risorse specifiche di WPF consumate da un oggetto.

Utilizzo di Visual Profiler

Per utilizzare Visual Profiler, fare clic sul pulsante Avvia analisi, quindi su Avvio oppure su Connetti. Per utilizzare l'opzione Connetti, è necessario che WPFPerf e l'applicazione che si sta analizzando vengano eseguite con l'accesso amministrativo. Inoltre, la funzionalità di sovrapposizione viene disattivata e l'opzione Connetti dispone di un numero inferiore di elementi. L'opzione consigliata è Avvio.

La scheda Eventi consente di scegliere gli eventi dell'applicazione e degli elementi che si desidera analizzare.

È possibile impostare la configurazione di Visual Profiler per attivare o disattivare l'analisi dei seguenti eventi dell'applicazione. Tali eventi, che corrispondono a metodi, vengono rappresentati dal nome del metodo seguito dal nome tra parentesi; ad esempio, Tick (TimeManager) rappresenta il metodo di TimeManager.Tick.

Eventi dell'applicazione

Descrizione

RenderMessageHandler (MediaContext)

Inizializza il passaggio di rendering. Chiama, tra gli altri, i metodi TimeManager.Tick e MediaContext.Render.

Rendering Thread

Si verifica quando si eseguono istruzioni di rendering sul relativo thread, il che risulta utile per rilevare applicazioni associate al rendering.

Layout

Si verifica durante la misurazione, l'organizzazione e il passaggio di rendering.

UpdateRealizations

Si verifica quando si aggiornano le rappresentazioni interne di bitmap del testo e degli effetti bitmap.

Tick (TimeManager)

Si verifica quando è attiva l'animazione. Questo evento non consente di attivare il gestore di rendering dell'animazione.

UpdateEffectiveValue (DependencyObject)

Si verifica quando il motore della proprietà modifica il valore di una DependencyProperty.

Hit Testing

Si verifica durante il passaggio dell'hit test determinando quale oggetto visivo è stato raggiunto.

AnimatedRenderMessageHandler (MediaContext)

Quando sono attivate le animazioni, il gestore elabora e aggiorna l'animazione determinando la modifica delle proprietà e a sua volta l'esecuzione del rendering.

Render (MediaContext)

Si verifica durante il passaggio di rendering. Questo metodo chiama alla fine il metodo OnRender di ciascun elemento e risulta utile per comprendere i costi totali di OnRender per tutti gli elementi. Questo evento corrisponde al metodo MediaContext.Render di un file di Visual Studio Profiler (VSP).

FormatLineInternal (TextFormatterImp)

Si verifica durante la formattazione del testo.

MarkVisibleRealizations (Visual)

Si verifica durante il rilevamento delle rappresentazioni interne di bitmap del testo e quando è necessario aggiornare gli effetti bitmap.

È possibile impostare la configurazione di Visual Profiler per attivare o disattivare l'analisi dei seguenti eventi degli elementi:

Eventi dell'elemento

Descrizione

Layout

Si verifica durante la misurazione, l'organizzazione e il passaggio di rendering.

MarkVisibleRealizations (Visual)

Si verifica durante il rilevamento delle rappresentazioni interne di bitmap del testo e quando è necessario aggiornare gli effetti bitmap.

UIElement.OnRender

UIElementOperazioni di rendering

UIElement Layout

UIElementOperazioni del layout.

Dopo aver selezionato l'applicazione e le opzioni di analisi, fare clic sul pulsante OK per iniziare l'analisi.

Eseguire l'applicazione e lo strumento di Visual Profiler una accanto all'altro e notare i valori che cambiano nello strumento. Con l'espansione della gerarchia della struttura ad albero visuale, è possibile selezionare l'oggetto visivo da analizzare, come ad esempio il controllo Grid. La sezione Utilizzo della CPU di Visual Profiler fornisce un'indicazione dettagliata dell'utilizzo dei servizi WPF da parte dell'oggetto e dell'applicazione. I dati di utilizzo della CPU relativi agli elenchi degli elementi sono:

  • Tempo inclusivo - l'utilizzo della CPU relativo all'elemento e a tutti i relativi discendenti.

  • Tempo esclusivo - l'utilizzo della CPU relativo solo all'elemento.

Output visualizzato di Visual Profiler

Output di Visual Profiler

Visual Profiler sovrappone diverse sfumature di rosso sugli oggetti presenti nella struttura ad albero visuale al fine di rappresentare la relativa quantità di risorse utilizzate dall'oggetto. Un oggetto visualizzato con una sovrapposizione di colore rosso più scuro rappresenta un proporzione più alta delle risorse rispetto a un oggetto con una sovrapposizione di colore rosso più chiaro.

Analizzatore di working set

L'analizzatore di working set è uno strumento di analisi delle prestazioni di WPF che fornisce informazioni sull'utilizzo della memoria di un determinato processo. Questo strumento consente di generare uno snapshot delle informazioni sull'utilizzo della memoria dell'applicazione in un determinato stato dell'applicazione.

Working set di un'applicazione

Il working set di un'applicazione è un insieme di pagine nel relativo spazio degli indirizzi virtuali a cui è stato fatto riferimento recentemente. Include sia i dati condivisi sia quelli privati. I dati condivisi includono le pagine che contengono tutte le istruzioni eseguite dall'applicazione, comprese quelle nelle DLL dell'utente e in quelle del sistema. Con il crescere delle dimensioni del working set, cresce anche la richiesta di memoria. Per ulteriori informazioni sul working set, vedere Working set del processo.

Utilità Virtual Address Dump (VaDump)

Virtual Address Dump (VaDump) crea un elenco che contiene informazioni riguardanti l'utilizzo della memoria di un processo specificato. Lo strumento viene inserito nella seguente directory:

~\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin\winnt

Nota importante:

È necessario assicurarsi che il percorso di esecuzione del sistema includa la directory di VaDump. Diversamente l'analizzatore di working set non funzionerà correttamente.

Utilizzo dell'analizzatore di working set

Per utilizzare l'analizzatore di working set, avviare l'applicazione di WPF che si desidera analizzare. Dopo aver avviato l'analizzatore di working set, scegliere l'opzione Selezionare il processo:

Finestra di dialogo del processo di selezione dell'analizzatore di working set

Finestra principale del visualizzatore del working set

Selezionare il processo di cui si desidera analizzare il working set, quindi fare clic sul pulsante Acquisisci. L'analizzatore di working set richiama prima l'utilità VaDump per generare le informazioni di utilizzo della memoria, quindi, analizza le informazioni e le presenta in un formato grafico.

Nota

I dati del working set rappresentano una visualizzazione statica dell'utilizzo della memoria. È possibile generare diverse serie di dati del working set in diversi punti dell'applicazione e confrontare le differenze nell'utilizzo della memoria.

Quando i dati del working set sono pronti per la visualizzazione, l'analizzatore di working set genera una visualizzazione struttura che rappresenta i dati dinamici, quelli del sistema e i moduli dell'applicazione.

Categorie di utilizzo della memoria per l'analizzatore di working set

Categorie di utilizzo del visualizzatore del working set

Per le applicazioni di WPF, la categoria Moduli di WPF contiene moduli che sono specifici del sistema di WPF. Scegliere la categoria da visualizzare; appare quindi un insieme di grafici a torta. Ad esempio, se si fa clic sulla categoria Moduli di WPF, sul lato sinistro della finestra vengono visualizzate le seguenti informazioni.

Grafico a torta relativo all'utilizzo della memoria dell'analizzatore di working set per Moduli di WPF

Grafico a torta dell'utilizzo della memoria del visualizzatore del working set

Il titolo in alto visualizza le dimensioni totali della categoria del working set. In questo caso, la categoria Moduli di WPF rappresenta 9160 KB di utilizzo della memoria. Tale grafico rappresenta il singolo utilizzo della memoria di tutti i moduli che definiscono la categoria Moduli di WPF.

Nota

Le dimensioni di una categoria di utilizzo della memoria riflettono l'impiego della memoria da parte dell'applicazione nel momento in cui sono state acquisite le informazioni del working set.

La tabella piccola mostra l'utilizzo della memoria di byte condivisi, condivisibili e privati.

Tabella di utilizzo della memoria per l'analizzatore di working set

Grafico a torta dell'utilizzo della memoria del visualizzatore del working set

La categoria dei byte condivisi rappresenta la quantità di memoria che dovrebbe essere potenzialmente condivisa da altre applicazioni di WPF.

Visualizzazione dell'utilizzo di memoria dell'applicazione

Per visualizzare l'utilizzo di memoria dell'applicazione, selezionare il nome del file eseguibile dalla categoria Altri moduli nella visualizzazione struttura Working Set.

Categorie di utilizzo di memoria per l'analizzatore di working set

Categorie di utilizzo del visualizzatore del working set

Salvataggio e nuovo caricamento dei file dell'analizzatore di working set

Per salvare le informazioni di utilizzo del working set corrente, selezionare File dal menu principale dell'analizzatore di working set. Quindi fare clic sul pulsante Salva output VADump. Una volta salvate le informazioni di utilizzo del working set, è possibile generare un altro snapshot dell'utilizzo della memoria facendo clic sul pulsante Acquisisci. Per ricaricare un file con contenuto VADump, selezionare File dal menu principale dell'analizzatore di working set. Quindi fare clic sul pulsante Apri output VADump.

Utilizzo del ritardo di un timer per acquisire le informazioni del working set

L'analizzatore di working set offre una funzionalità di ritardo che consente di acquisire le informazioni di utilizzo del working set dopo un intervallo di tempo specificato. Selezionare Azioni nel menu principale dell'analizzatore di working set, quindi fare clic sul pulsante Avvia processo.

Specificare l'applicazione da eseguire utilizzando il pulsante Sfoglia, se necessario. Inserire quindi qualsiasi argomento per l'applicazione. Infine, inserire il numero di secondi di ritardo per l'acquisizione di informazioni dell'utilizzo di memoria e fare clic sul pulsante Avvio. Il testo di stato nella parte inferiore dell'analizzatore di working set riporta il conto alla rovescia dei secondi restanti fino all'acquisizione consentendo di determinare il tempo necessario per la modifica dello stato della stessa. Al termine dell'acquisizione, nel testo dello stato viene visualizzato "Fine".

Traccia eventi

Traccia eventi per Windows (ETW) è un'efficace funzione di analisi a livello di kernel che consente di registrare eventi definiti dall'applicazione o kernel in un file di log. È possibile utilizzare gli eventi in tempo reale o da un file di log e impiegarli per eseguire il debug di un'applicazione o per individuare dove si stanno verificando i problemi delle prestazioni nell'applicazione. Lo strumento di analisi Traccia eventi di WPF utilizza ETW per la registrazione degli eventi. Per ulteriori informazioni su ETW, vedere Traccia eventi.

Traccia eventi fa parte della suite di prodotti per l'analisi delle prestazioni di WPF, WPFPerf (WpfPerf.exe). Per ulteriori informazioni, vedere la sezione Utilizzo degli strumenti di analisi delle prestazioni.

Utilizzo di Traccia eventi

La finestra principale di Traccia eventi visualizza una serie di opzioni che consentono di aggiungere, salvare e visualizzare le informazioni relative alla registrazione degli eventi:

Finestra principale di Traccia eventi

Finestra principale di analisi eventi

Aggiunta di un nuovo logger di eventi

Per aggiungere un nuovo logger di eventi, fare clic sul pulsante Aggiungi nella finestra principale di Traccia eventi. La finestra di dialogo per l'aggiunta di un nuovo logger visualizza una serie di informazioni da definire. Ilnome del logger fa riferimento al nome descrittivo del logger. Selezionare uno dei quattro tipi di logger di eventi dall'elenco a discesa denominato GUID:

  • Registratore del kernel di NT

  • Common Language Runtime Garbage Collection

  • Windows Presentation Foundation – Solo prestazioni

  • Windows Presentation Foundation - Tutto

Esistono sostanzialmente due tipi di logger di eventi per WPF. La versione "Solo prestazioni" è un sottoinsieme ridotto della versione "Tutto". Il file di log consente di definire il nome del file di log eventi. Per definire il nome, fare clic sul pulsante "…". I file del log eventi utilizzano l'estensione file predefinita "etl".

L'opzione Livello fa riferimento ai seguenti livelli di gravità utilizzabili. Numeri più alti implicano che si ottengono livelli più bassi. Ad esempio, se si specifica 3, si riceveranno anche tutti gli eventi fatali, di errore e di avviso:

Livello

Descrizione

1

Eventi di uscita o di chiusura anomali.

2

Eventi di errore gravi.

3

Eventi di avviso come errori di allocazione.

4

Eventi non costituenti errore come eventi di immissione o uscita.

5

Eventi di analisi dettagliati.

L'opzione Flag specifica la classe degli eventi di WPF. Nella maggior parte dei casi, è sufficiente il valore predefinito.

Dopo la creazione delle informazioni di nuova registrazione degli eventi, fare clic sul pulsante Aggiungi nella finestra di dialogo per l'aggiunta di un nuovo logger al fine di aggiungerlo a Traccia eventi. È possibile creare altri logger di eventi e aggiungerli a Traccia eventi. Dopo avere aggiunto tutti i logger di eventi, fare clic sul pulsante Fine.

Finestra di dialogo Aggiungi nuovo logger

Finestra di dialogo Add New Logger

Per eliminare un logger di eventi specifico, selezionarlo nella casella di riepilogo, quindi fare clic su Rimuovi. Per rimuovere tutti i logger di eventi, fare clic sul pulsante Cancella.

Attivazione della registrazione di eventi

Selezionare il logger di eventi dal relativo elenco nella finestra principale di Traccia eventi. Fare clic sul pulsante Avvia per consentire la registrazione. Lo stato del logger di eventi deve essere Attivato.

Finestra principale di Traccia eventi con un logger di eventi selezionato

Finestra principale di analisi eventi con logger di eventi

Dopo avere registrato tutti gli eventi dell'applicazione, fare clic sul pulsante Arresta. Per garantire che siano state acquisite le informazioni di registrazione degli eventi, è possibile visualizzare il file di log eventi. Fare clic sul pulsante Apri log per visualizzare il file di log eventi.

Finestra principale di Traccia eventi contenenti le informazioni del log eventi

Finestra principale di analisi eventi con informazioni sulla registrazione degli eventi

Il file di log eventi presenta cinque colonne di informazioni per ciascun evento.

Column

Descrizione

Ora

Ora corrente nei cicli CPU.

Guid

GUID corrispondente all'evento

Nome

Nome dell'evento

Tipo evento

Evento informativo, di inizio o fine; un evento di avvio presenta un evento di fine corrispondente.

Dati

Dati riferiti a un tipo di evento specifico.

Le informazioni del log eventi non sono molto utili in questo formato. Utilizzare lo strumento di analisi Visualizzatore delle informazioni di analisi ETW di WPF per esaminare l'output di un file di log eventi creato con Traccia eventi.

Visualizzatore delle informazioni di analisi ETW

Traccia eventi per Windows (ETW) offre un meccanismo di analisi e registrazione degli eventi generati da applicazioni in modalità utente. ETW è implementato nel sistema operativo di Windows e fornisce agli sviluppatori un insieme rapido, affidabile e versatile di funzionalità per l'analisi degli eventi. Lo strumento Traccia eventi consente di registrare, visualizzare e sfogliare i file di log di ETW in un formato di interfaccia utente specifico delle funzionalità di WPF.

Finestra principale di visualizzazione delle analisi di ETW

Finestra principale di visualizzazione analisi

Utilizzo del visualizzatore delle informazioni di analisi ETW

È possibile utilizzare un file di log ETW creato e salvato mediante lo strumento di analisi Traccia eventi di WPF. I file di log eventi utilizzano l'estensione file predefinita "etl". Selezionare File nel menu principale del visualizzatore delle informazioni di analisi ETW. Scegliere quindi Apri per caricare il file di log desiderato

Finestra principale del visualizzatore delle informazioni di analisi ETW contenente il file di eventi

Finestra principale di visualizzazione analisi con log eventi

Una volta caricato il file di log, il visualizzatore delle informazioni di analisi ETW visualizza una sequenza temporale che rappresenta la durata dell'acquisizione del log eventi. È possibile modificare l'unità di misura per la sequenza temporale in secondi o millisecondi. L'utente può scegliere quali tipi di eventi visualizzare attivando o disattivano tipi di eventi specifici. Se si desidera visualizzare un numero modesto di tipi di evento, fare clic sul pulsante Disattiva tutto per disattivare tutti gli eventi, quindi selezionare le caselle di controllo relative all'evento da attivare. I tipi di eventi attivati per la sequenza temporale vengono visualizzati nella parte inferiore destra del visualizzatore delle informazioni di analisi ETW.

È possibile trascinare il mouse sulla sequenza temporale per visualizzare solo quegli eventi che si sono verificati nell'area selezionata della sequenza. Per ingrandire l'area selezionata della sequenza temporale, fare clic con il pulsante destro del mouse sul menu popup illustrato nello screenshot seguente.

Finestra principale del visualizzatore delle informazioni di analisi ETW contenente il menu popup

Finestra principale di visualizzazione analisi con log eventi

Il menu popup consente di ingrandire o ridurre la sequenza temporale, nonché visualizzare tutti gli eventi e cancellare l'area attualmente selezionata della sequenza. Quando si ingrandisce la sequenza temporale, l'intervallo di tempo che viene visualizzato in blu indica la lunghezza della sequenza temporale ingrandita. L'intervallo di tempo visualizzato di seguito, in nero, indica il tempo relativo all'intera durata dell'acquisizione del log eventi.

Finestra principale del visualizzatore delle informazioni di analisi ETW contenente i dati ingranditi

Finestra principale di visualizzazione analisi con log eventi

Per visualizzare le informazioni relative a un evento specifico, fare clic sulle piccole caselle della sequenza temporale.

Installazione di un file di log eventi

È possibile inoltre creare un file di log ETW mediante il visualizzatore delle informazioni di analisi ETW facendo clic sul pulsante per avviare l'acquisizione al fine di iniziare la registrazione degli eventi e sul pulsante per arrestare l'acquisizione al fine di terminare la registrazione degli eventi. Il logger degli eventi generato mediante questo metodo non consente di personalizzare le impostazioni di filtraggio degli stessi. Utilizzare lo strumento Traccia eventi per la creazione di un logger di eventi personalizzato.

Altri strumenti per le prestazioni

Windows Presentation Foundation (WPF) fornisce inoltre supporto per l'analisi di debug.

Supporto di analisi di debug per WPF

La classe PresentationTraceSources fornisce supporto per l'analisi di debug delle applicazioni Windows Presentation Foundation (WPF). L'analisi è un sistema di diagnostica con cui è possibile tenere traccia dell'avanzamento di un'applicazione. Le istruzioni di analisi riportano le istruzioni nello stesso modo in cui spesso viene utilizzato il metodo WriteLine. Tuttavia, le istruzioni di analisi possono essere attivate o disattivate tramite un file di configurazione. Inoltre, l'output delle istruzioni di analisi possono essere personalizzate.

Per informazioni su altre classi di diagnostica relative a .NET Framework, vedere System.Diagnostics.

Vedere anche

Concetti

Ottimizzazione delle prestazioni di applicazioni WPF

Livelli di rendering della grafica

Cenni preliminari sul rendering della grafica in Windows Presentation Foundation

UI Spy (UISpy.exe)