Dela via


Concurrency Visualizer-markörer

I Concurrency Visualizer är markörer ikoner som representerar händelser i en app. Vanligtvis genererar appen dessa händelser för att ange faser eller förekomster i ett program. Händelserna kan genereras av appen eller av de bibliotek och körtider som appen använder.

Typer av markörer

Concurrency Visualizer använder tre typer av markörer för att representera programhändelser: flaggor, meddelanden och intervall.

  1. Använd en flagga för att ange en intressant tidpunkt i din app. Du kan till exempel använda en flagga för att representera att ett variabelvärde har nått ett visst tröskelvärde eller att ett undantag utlöstes.

  2. Ett meddelande markerar också en tidpunkt, men du kan använda det för spårning i loggformat. Till exempel, vad som kan ha dumpats i en loggfil kan du nu omsluta i ett meddelandeanrop så att du kan spåra den och visa den i Concurrency Visualizer. Du kan också använda Concurrency Visualizer för att exportera dessa data till en CSV-fil.

  3. Ett tidsintervall representerar en tidsperiod i din app, till exempel en av dess faser.

Markörlänkning till trådar

Varje tråd som genererar markörer har en separat tidslinjekanal. ID:t för den tråd som ansvarar för att generera markörhändelser visas bredvid beskrivningen av markörkanalen. Det ID som visas till vänster i markörkanalen matchar ID:t för en annan tråd i den aktuella processen.

Markörens betydelse

Markörer kan ha en av fyra prioritetsnivåer: låg, normal, hög och kritisk. Du kan filtrera källorna för markörer baserat på prioritetsnivå. Om du till exempel bara vill se markörer från en viss källa som har normal eller kritisk betydelse kan du konfigurera filtret i dialogrutan Avancerade inställningar . Vikten av en markör visas i verktygstipset och i Markörerrapporten.

Markörkategori

En markörkategori anger en grupp med markörhändelser som kommer från samma källa. Concurrency Visualizer använder färg för att skilja mellan olika kategorier av flaggor och intervall. Du kan konfigurera Concurrency Visualizer att använda kategorier för att filtrera markörhändelserna från en viss händelseprovider. Använd dialogrutan Avancerade inställningar för att konfigurera filtret.

Kända källor till markörer

Alla ETW-leverantörer kan generera markörer så länge providern följer vissa begränsningar. Du kan konfigurera Concurrency Visualizer att lyssna på ytterligare händelsekällor för markörer. Som standard lyssnar den på dessa händelsekällor:

Markörer från EventSource

Concurrency Visualizer kan också visa EventSource-händelser. Mer information finns i Visualisera EventSource-händelser som markörer.

Flaggmarkörer

En flaggmarkör representerar något som inträffade omedelbart i en app. En flagga kan representera många typer av programhändelser. En flagga kan till exempel visa när ett visst arbetsobjekt schemalagts eller när ett undantag utlöstes. Runtimes, till exempel Task Parallel Library, kan också generera flaggar.

Flaggbetydning

Flaggor visas i olika storlekar beroende på deras betydelse. Precis som alla markörer kan vikten vara låg, normal, hög eller kritisk. Den här bilden visar utseendet på markörer efter prioritetsnivå:

Bild av markörer för låg, normal, hög och kritisk betydelse.

Flaggkategori

En flagga visas i en av fem olika färger beroende på dess kategori. Färgerna återanvänds om det finns fler än fem kategorier. Du kan inte välja färg. Som vilken markör som helst kan kategorin vara vilket heltal som helst. Nästa bild visar färgerna för de första fem kategorierna.

Bild av fem färger med kategorimarkörer.

Aviseringar

En avisering är en rödfärgad flagga som representerar en kritisk programhändelse, till exempel ett undantag. Här är en avisering:

Illustration av varningsmarkören för Concurrency Visualizer.

Sammansättningsflaggor

Ibland förekommer flaggor så nära varandra i Concurrency Visualizer att de inte kan ritas individuellt. När detta inträffar visas en grå aggregeringsflagga som representerar de underliggande flaggorna. När du vilar pekaren på en av dessa ikoner visar en knappbeskrivning antalet underliggande flaggor som representeras. Om du vill visa flaggorna zoomar du in. Om du zoomar in hela vägen och fortfarande får en aggregeringsflagga kan du visa de underliggande flaggorna i markörrapporten.

Sammansättningsflaggor ritas i olika storlekar. Storleken beror på prioritetsnivån för den viktigaste flaggan i aggregeringen. Följande bild visar aggregeringsflaggor i ökad prioritetsordning.

Bild av aggregerade flaggor som visar fyra nivåer av betydelse.

Meddelandemarkörer

En meddelandemarkör representerar loggutdata. Ett meddelande är en sträng som utfärdas av en specifik tråd vid en viss tidpunkt. Du kan exportera meddelanden till en textfil för användning med andra verktyg. Du kan vila pekaren på ett meddelande i Concurrency Visualizer för att visa meddelandesträngen. Och du kan visa alla meddelandemarkörer i rapporten Markörer. Följande bild visar en meddelandemarkör.

Markörer för meddelandesammansättning

Ibland uppstår flera meddelanden så nära varandra i Concurrency Visualizer att de inte kan ritas individuellt. När detta inträffar visas en markör för meddelandesammansättning som representerar de underliggande meddelandena. När du vilar pekaren på en av dessa ikoner visar en knappbeskrivning antalet underliggande meddelanden som representeras. Om du vill visa meddelandena zoomar du in. Om du zoomar in hela vägen och fortfarande får en aggregeringsmarkör kan du visa de underliggande meddelandena i markörrapporten.

Markörer för spann

En span-markör representerar en meningsfull fas i ett program. Du kan till exempel använda ett intervall för att representera ett tidsintervall under vilket ett visst arbetsobjekt bearbetas. Dess längd representerar varaktigheten för motsvarande programfas. Den här bilden visar ett intervall i Concurrency Visualizer:

Bild av en span-markör i Concurrency Visualizer.

Spannkategori

En span-markör visas i en av fem olika färger, beroende på dess kategori. Färgerna upprepas om det finns fler än fem kategorier. Kategorin kan vara vilket heltal som helst. Den här bilden visar de fem möjliga färgerna:

Bild av fem intervall i olika kategorier.

Markörer för span-aggregering

Ibland förekommer intervallmarkörer så nära varandra i Concurrency Visualizer att de inte kan ritas individuellt. När detta inträffar visas en markör för grå spannsaggregering som representerar de underliggande intervallen. När du håller muspekaren över en av dessa ikoner visas en tooltip som visar hur många underliggande intervall som representeras. Om du vill visa intervallen zoomar du in. Om du zoomar in hela vägen och fortfarande får en intervallaggregeringsmarkör kan du visa de underliggande intervallmarkörerna i Markörrapporten. Den här bilden visar en intervall-aggregeringsmarkör:

Illustration av en markör för tidsintervall i Concurrency Visualizer.