Marcatori del visualizzatore di concorrenza
I marcatori del visualizzatore di concorrenza sono icone che rappresentano eventi in un'app. In genere, l'applicazione genera questi eventi per definire fasi o occorrenze di un'applicazione. Gli eventi possono essere generati dall'app o da librerie e 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 span.
Usare un flag per indicare un punto di interesse nell'app. Si potrebbe ad esempio usare un flag per indicare che un valore della variabile ha raggiunto una determinata soglia o che è stata generata un'eccezione.
Si può contrassegnare un momento anche con un messaggio. È tuttavia possibile usare questo tipo di marcatore per una traccia in stile log. Ad esempio, quel che è stato copiato in un file di log può essere incluso in una chiamata di messaggio in modo che è sia possibile tenerne traccia e visualizzarlo nel visualizzatore di concorrenza. È anche possibile usare il visualizzatore di concorrenza per esportare questi dati in un file con estensione csv.
Uno span è un intervallo di tempo nell'app, ad esempio, una delle sue fasi.
Collegamento di marcatori a thread
Per ogni thread che genera marcatori esiste un canale temporale separato. L'ID del thread che genera gli eventi del marcatore viene visualizzato accanto alla descrizione del canale del marcatore. L'ID visualizzato a sinistra del canale del marcatore corrisponde all'ID di un altro thread nel processo corrente.
Importanza dei marcatori
Per i marcatori esistono quattro livelli di importanza: bassa, normale, alta e critica. È possibile filtrare le origini dei marcatori in base al livello di importanza. Ad esempio, se si vogliono vedere 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 relativa descrizione comando e nel rapporto marcatori.
Categoria dei marcatori
La categoria di un marcatore indica un gruppo di eventi marcatore che provengono dalla stessa origine. Il visualizzatore di concorrenza usa i colori per distinguere le diverse categorie di flag e span. È possibile configurare il visualizzatore di concorrenza in modo che usi le categorie per filtrare gli eventi marcatore di un provider di eventi specifico. Usare la finestra di dialogo Impostazioni avanzate per configurare il filtro.
Origini note di marcatori
I marcatori possono essere generati da qualsiasi privider ETW purché il provider sia conforme a determinati vincoli. È possibile configurare il visualizzatore di concorrenza in modo che sia in ascolto di origini evento aggiuntive. Per impostazione predefinita, è in ascolto delle origini evento seguenti:
C++ AMP (C++ Accelerated Massive Parallelism)
Nella finestra di dialogo Impostazioni avanzate è possibile usare la scheda Marcatori per controllare se visualizzare nel visualizzatore di concorrenza i marcatori di varie origini e filtrare i marcatori in base a importanza e categoria.
Marcatori di EventSource
Il visualizzatore di concorrenza può visualizzare anche eventi EventSource. Per altre informazioni, vedere Visualizzazione di eventi EventSource come marcatori.
Marcatori flag
Un marcatore flag rappresenta un evento che si è verificato in un determinato istante di tempo all'interno di un'app. Un flag può rappresentare molti tipi di eventi dell'applicazione. Ad esempio, un flag può indicare quando è stato pianificato un particolare elemento di lavoro o quando è stata generata un'eccezione. Anche i runtime come Task Parallel Library possono generare flag.
Importanza dei flag
I flag vengono visualizzati con dimensioni diverse a seconda della loro importanza. Come per qualsiasi marcatore, l'importanza può essere bassa, normale, alta o critica. La figura seguente mostra l'aspetto dei marcatori in base al livello di importanza:
Categoria dei flag
Un flag viene visualizzato in uno dei cinque diversi colori seguenti, a seconda della categoria. I colori vengono riutilizzati se sono presenti più di cinque categorie. Non è possibile scegliere il colore. Come per qualsiasi marcatore, la categoria può essere un numero intero qualsiasi. La figura seguente mostra i colori per le prime cinque categorie.
Avvisi
Un avviso è un flag di colore rosso che rappresenta un evento dell'applicazione critico, come un'eccezione. Ecco un esempio di avviso:
Flag di aggregazione
Talvolta i flag si verificano a così poca distanza tra loro nel visualizzatore di concorrenza da non poter essere rappresentati singolarmente. Quando ciò accade, viene visualizzato un flag di aggregazione grigio che rappresenta i flag sottostanti. Quando si posiziona il puntatore del mouse su una di queste icone, compare una descrizione comando che mostra il numero di flag sottostanti rappresentati. Per visualizzare i flag, fare zoom avanti. Se viene fatto zoom avanti completamente e viene visualizzato ancora un flag di aggregazione, è possibile visualizzare i flag sottostanti nel rapporto Marcatori.
I flag di aggregazione sono rappresentati con diverse dimensioni. La dimensione dipende dal livello di importanza del flag più importante nell'aggregazione. La figura seguente mostra i flag di aggregazione in ordine di importanza crescente.
Marcatori di messaggio
Un marcatore del messaggio rappresenta l'output del log. Un messaggio è una stringa che viene emessa da un thread specifico in un momento specifico. È possibile esportare i messaggi in un file di testo per usarli con altri strumenti. È possibile posizionare il puntatore del mouse su un messaggio nel visualizzatore di concorrenza per visualizzare la stringa del messaggio. È anche possibile visualizzare tutti i marcatori del messaggio nel rapporto Marcatori. La figura seguente mostra un marcatore del messaggio.
Marcatori di aggregazione di messaggi
Talvolta più messaggi si presentano a così poca distanza tra loro nel visualizzatore di concorrenza da non poter essere rappresentati singolarmente. In questo caso, viene visualizzato un marcatore di aggregazione di messaggi che rappresenta i messaggi sottostanti. Quando si posiziona il puntatore del mouse su una di queste icone, compare una descrizione comando che mostra il numero di messaggi sottostanti rappresentati. Per visualizzare i messaggi, fare zoom avanti. Se viene fatto zoom avanti completamente e viene visualizzato ancora un marcatore di aggregazione, è possibile visualizzare i messaggi sottostanti nel rapporto Marcatori.
Marcatori span
Un marcatore span rappresenta una fase significativa di un'applicazione. Ad esempio, è possibile usare uno span 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. La figura mostra uno span nel visualizzatore di concorrenza:
Categoria di span
Un marcatore span viene visualizzato in uno dei cinque diversi colori seguenti, a seconda della categoria. I colori vengono ripetuti se sono presenti più di cinque categorie. La categoria può essere un numero intero qualsiasi. La figura mostra i cinque colori possibili:
Marcatori di aggregazione di span
Talvolta gli indicatori span si presentano a così poca distanza tra loro nel visualizzatore di concorrenza da non poter essere rappresentati singolarmente. In questo caso, viene visualizzato un marcatore di aggregazione di span di colore grigio che rappresenta gli span sottostanti. Quando si posiziona il puntatore del mouse su una di queste icone, compare una descrizione comando che mostra il numero di span sottostanti rappresentati. Per visualizzare gli span, fare zoom avanti. Se viene fatto zoom avanti completamente e viene visualizzato ancora un marcatore di aggregazione di span, è possibile visualizzare i marcatori span sottostanti nel rapporto Marcatori. La figura mostra un marcatore di aggregazione di span: