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.
Nel visualizzatore di concorrenza i marcatori sono icone che rappresentano eventi in un'app. In genere, l'app genera questi eventi per designare fasi o occorrenze in un'applicazione. Gli eventi possono essere generati dall'app o dalle librerie e dai runtime usati dall'app.
Tipi di marcatori
Il visualizzatore di concorrenza usa tre tipi di marcatori per rappresentare gli eventi dell'applicazione: flag, messaggi e intervalli.
Usa un flag per indicare un punto nel tempo interessante nella tua app. Ad esempio, è possibile usare un flag per rappresentare che un valore di variabile ha raggiunto una determinata soglia o che è stata generata un'eccezione.
Un messaggio contrassegna anche un punto nel tempo, ma è possibile usarlo per la traccia in stile log. Ad esempio, ciò che potrebbe essere stato scaricato in un file di log può ora essere incapsulato in una chiamata di messaggio, permettendo così di tracciarlo e visualizzarlo nel Concurrency Visualizer. È anche possibile usare il visualizzatore di concorrenza per esportare questi dati in un file CSV.
Un span rappresenta un intervallo di tempo nell'app, ad esempio una delle sue fasi.
Collegamento marcatore ai thread
Ogni thread che genera marcatori ha un canale linea temporale separato. L'ID del thread responsabile della generazione degli eventi del marcatore viene visualizzato accanto alla descrizione del canale del marcatore. L'ID visualizzato sul lato sinistro del canale dell'indicatore corrisponde all'ID di un altro thread nel processo corrente.
Importanza del marcatore
I marcatori possono avere uno dei quattro livelli di importanza: basso, normale, alto e critico. È possibile filtrare le origini dei marcatori in base al livello di importanza. Ad esempio, se si desidera visualizzare solo i marcatori di una determinata origine con importanza normale o critica, è possibile configurare il filtro nella finestra di dialogo Impostazioni avanzate . L'importanza di un marcatore viene visualizzata nella descrizione comando e nel report marcatori.
Categoria marcatore
Una categoria di marcatori indica un gruppo di eventi marcatori provenienti dalla stessa origine. Il visualizzatore di concorrenza usa il colore per distinguere diverse categorie di flag e intervalli. È possibile configurare il visualizzatore di concorrenza in modo da usare le categorie per filtrare gli eventi del marcatore da un provider di eventi specifico. Usare la finestra di dialogo Impostazioni avanzate per configurare il filtro.
Fonti note di marcatori
Qualsiasi provider ETW può generare marcatori, purché il provider rispetti determinati vincoli. È possibile configurare il visualizzatore di concorrenza per ascoltare altre origini eventi per i marcatori. Per impostazione predefinita, è in ascolto di queste origini eventi:
C++ AMP (parallelismo massivo accelerato C++)
È possibile usare la scheda Marcatori nella finestra di dialogo Impostazioni avanzate per controllare se i marcatori di varie origini vengono visualizzati nel visualizzatore di concorrenza ed è possibile filtrare i marcatori in base all'importanza e alla categoria.
Marcatori da EventSource
Il visualizzatore di concorrenza può anche visualizzare gli eventi EventSource. Per altre informazioni, vedere Visualizzare gli eventi EventSource come marcatori.
Indicatori di bandierina
Un marcatore di flag rappresenta un elemento che si è verificato in un momento istantaneo in un'app. Un flag può rappresentare molti tipi di eventi dell'applicazione. Ad esempio, un flag può essere visualizzato quando un particolare elemento di lavoro è stato pianificato o quando è stata generata un'eccezione. Anche i runtime, ad esempio Task Parallel Library, possono generare flag.
Contrassegna l'importanza
I flag vengono visualizzati in dimensioni diverse a seconda della loro importanza. Come qualsiasi marcatore, l'importanza può essere bassa, normale, alta o critica. Questa figura mostra l'aspetto dei marcatori in base al livello di importanza:
Categoria di etichettatura
Un flag viene visualizzato in uno dei cinque colori diversi a seconda della relativa categoria. I colori vengono riutilizzati se sono presenti più di cinque categorie. Non è possibile scegliere il colore. Come qualsiasi marcatore, la categoria può essere qualsiasi numero intero. La figura successiva mostra i colori per le prime cinque categorie.
Avvisi
Un avviso è un flag di colore rosso che rappresenta un evento critico dell'applicazione, ad esempio un'eccezione. Ecco un avviso:
Flag di aggregazione
A volte si verificano flag così vicini l'uno all'altro nel visualizzatore di concorrenza che non possono essere disegnati singolarmente. In questo caso, viene visualizzato un flag di aggregazione grigio che rappresenta i flag sottostanti. Quando si posiziona il puntatore su una di queste icone, una descrizione comando visualizza il numero di flag sottostanti rappresentati. Per visualizzare i flag, eseguire lo zoom avanti. Se ingrandite al massimo e ottenete ancora un flag di aggregazione, potete visualizzare i flag sottostanti nel Rapporto Marcatori.
I indicatori di aggregazione vengono disegnati in dimensioni diverse. Le dimensioni dipendono dal livello di importanza del flag più importante nell'aggregazione. La figura seguente mostra i flag di aggregazione in ordine crescente di importanza.
Marcatori di messaggio
Un marcatore di messaggio rappresenta l'output del log. Un messaggio è una stringa rilasciata da un thread specifico in un momento specifico. È possibile esportare i messaggi in un file di testo da usare con altri strumenti. È possibile posizionare il puntatore su un messaggio nel visualizzatore di concorrenza per visualizzare la stringa del messaggio. È anche possibile visualizzare tutti i marcatori dei messaggi nel Report dei Marcatori. La figura seguente mostra un marcatore di messaggio.
Marcatori di aggregazione dei messaggi
A volte si verificano più messaggi così vicini l'uno all'altro nel visualizzatore di concorrenza che non possono essere disegnati singolarmente. In questo caso, viene visualizzato un marcatore di aggregazione dei messaggi che rappresenta i messaggi sottostanti. Quando si posiziona il puntatore su una di queste icone, una descrizione comando visualizza il numero di messaggi sottostanti rappresentati. Per visualizzare i messaggi, eseguire lo zoom avanti. Se si zooma fino in fondo e si ottiene ancora un marcatore di aggregazione, è possibile visualizzare i messaggi sottostanti nel Report Marcatori.
Indicatori di intervallo
Un marcatore di intervallo rappresenta una fase significativa di un'applicazione. Ad esempio, è possibile usare un intervallo per rappresentare un intervallo di tempo durante il quale viene elaborato un particolare elemento di lavoro. La sua lunghezza rappresenta la durata della fase dell'applicazione corrispondente. Questa figura mostra un intervallo nel visualizzatore di concorrenza:
Categoria Span
Un marcatore di intervallo viene visualizzato in uno dei cinque colori diversi, a seconda della relativa categoria. I colori vengono ripetuti se sono presenti più di cinque categorie. La categoria può essere qualsiasi numero intero. Questa figura mostra i cinque colori possibili:
Marcatori di aggregazione di intervalli
A volte si verificano marcatori di intervallo così vicini l'uno all'altro nel visualizzatore di concorrenza che non possono essere disegnati singolarmente. In questo caso, viene visualizzato un marcatore di aggregazione dell'intervallo grigio che rappresenta gli intervalli sottostanti. Quando si posiziona il puntatore su una di queste icone, una descrizione comando visualizza il numero di intervalli sottostanti rappresentati. Per visualizzare gli intervalli, eseguire lo zoom avanti. Se si zooma al massimo e si ottiene ancora un marcatore di aggregazione degli intervalli, puoi visualizzare gli intervalli sottostanti nel report Marcatori. Questa illustrazione mostra un marcatore di aggregazione dello span: