Vlákna zobrazují sestavy ve Vizualizéru souběžnosti.
Tento článek obsahuje informace o sestavách v zobrazení Vláken Vizualizéru souběžnosti.
Sestava blokujícího časového profilu
Sestavy profilů poskytují agregovaná data o době blokování pro zásobníky volání, které jsou specifické pro každou kategorii blokování (například vstupně-výstupní operace nebo synchronizace). Sestava preemption obsahuje seznam procesů, které předepsaly aktuální proces spolu s počtem instancí preemption. Pokud chcete vytvořit sestavu blokujícího profilu, nástroj shromažďuje blokující volání rozhraní API a shromažďuje je do stromu zásobníků volání. Data zobrazená v těchto sestavách se liší podle aktuálního časového rozsahu, skrytých vláken a následujících dvou filtrů, které se můžou použít:
Pokud je vybrán pouze můj kód, zobrazí se pouze snímky zásobníku s uživatelským kódem a jednu úroveň pod uživatelským kódem.
Pokud je nastavena hodnota snížení šumu, kompletované zásobníky, které mají méně než zadaná frekvence, se přeskočí.
Rozbalte libovolnou položku stromu volání a vyhledejte řádek kódu, ve kterém se tráví blokující čas. Pokud chcete najít řádek zdroje pro položku, v místní nabídce zvolte Zobrazit zdroj. Chcete-li najít řádek kódu, který tento volal, v místní nabídce zvolte Zobrazit weby volání. Pokud je k dispozici jenom jeden web volání, příkaz se připojí ke zvýrazněným řádku kódu pro web volání. Pokud je k dispozici více webů volání, otevře se v příkazu dialogové okno, ve kterém můžete vybrat položku, a pak kliknutím na tlačítko Přejít ke zdroji vyhledejte zvýrazněný web volání. Často je nejvhodnější zobrazit zdrojový kód pro web volání, který má nejvíce instancí, nejvíce času nebo obojího.
Blokování sloupců sestavy času
Následující tabulka uvádí sloupce pro každou blokující sestavu.
Název sloupce | Popis |
---|---|
Jméno | Název funkce pro každou úroveň zásobníku volání. |
Instance | Počet instancí blokujícího volání pro viditelné časové období |
Inkluzivní blokující čas | Celková doba blokování strávená pro všechny zásobníky, které se zahrnou na tuto úroveň stromu zásobníku volání. Inkluzivní číslo je součet výhradního času blokování pro tuto funkci a výhradní doby blokování pro všechny jeho podřízené uzly. |
Výhradní doba blokování | Celková doba blokování, kterou tato funkce strávila, je nejnižší úrovní zásobníku volání. Jedinečná položka zásobníku volání, která má vysokou exkluzivní dobu blokování, může být funkcí zájmu. |
Rozhraní API/kategorie čekání | Zobrazuje se pouze pro funkce na nejnižší úrovni zásobníku volání. Tam, kde je rozpoznán podpis blokujícího volání, je zadaný název blokujícího rozhraní API. Pokud se podpis nerozpozná, zobrazí se informace hlášené jádrem. |
Podrobnosti | Plně kvalifikovaný název funkce. To zahrnuje počet řádků, pokud je k dispozici. |
Synchronizace
Sestava synchronizace zobrazuje volání, která jsou zodpovědná za segmenty blokující synchronizaci, a agregované doby blokování jednotlivých zásobníků volání. Další informace naleznete v tématu Čas synchronizace.
Spát
Sestava režimu spánku zobrazuje volání, která jsou zodpovědná za blokování času, který byl přiřazen k času stráveného spaním, a agregované doby blokování jednotlivých zásobníků volání. Další informace najdete v tématu Doba spánku.
I/O
Sestava vstupně-výstupních operací zobrazuje volání zodpovědná za segmenty blokující vstupně-výstupní operace a agregovanou dobu blokování jednotlivých zásobníků volání. Další informace najdete v tématu V/V time (threads view).
Správa paměti
Sestava Správa paměti zobrazuje volání, která jsou zodpovědná za segmenty blokující operace správy paměti, a agregované doby blokování jednotlivých zásobníků volání. Další informace naleznete v tématu Čas správy paměti.
Preemption
Sestava preemption obsahuje seznam procesů, které předepsaly aktuální proces spolu s počtem instancí. Jednotlivé procesy můžete rozšířit a zobrazit konkrétní vlákna, která nahradila vlákna v aktuálním procesu, a zobrazit rozpis instancí preempce na vlákno. Tato blokující sestava je méně použitelná než ostatní, protože pro váš proces obvykle platí operační systém, ne problém v kódu. Další informace naleznete v tématu Čas předběžného odstranění.
Zpracování uživatelského rozhraní
Sestava zpracování uživatelského rozhraní zobrazuje volání, která jsou zodpovědná za blokování segmentů blokujících bloky zpracování uživatelského rozhraní, a agregované doby blokování jednotlivých zásobníků volání. Další informace najdete v tématu Doba zpracování uživatelského rozhraní.
Sestava diskových operací (Zobrazení vláken)
Sestava operací disku zobrazuje vstupně-výstupní operace disku v kanálech disku.
Pro každý přístup k disku, který se vyskytuje jménem procesu profilovaného v aktuálně viditelném časovém intervalu, jsou tyto informace hlášeny:
Název a PID procesu, který provedl přístup k disku
ID vlákna, které přistupovalo k disku
Název souboru, ke kterému se získal přístup
Počet čtení na soubor
Počet přečtených bajtů
Latence čtení v milisekundách
Počet zápisů
Počet zapsaných bajtů
Latence zápisu v milisekundách
Sestava profilu spuštění
Sestava profilu spuštění je tradiční profil vzorkování. Vzorky se pořizují přibližně v milisekundách během období, kdy vlákno běží na logickém jádru, a vizualizér souběžnosti vytvoří typický strom volání tím, že kompletuje kumulovanou sadu ukázkových zásobníků. Data v této tabulce mohou být ovlivněna aktuálním časovým rozsahem a skrytými vlákny a těmito filtry, které mohou být použity:
Pokud je vybrán pouze můj kód, zobrazí se pouze rámce zásobníku, které mají uživatelský kód a jednu úroveň pod uživatelským kódem.
Pokud je nastavená hodnota snížení šumu, kompletované zásobníky, které mají méně než zadaná frekvence, se vyfiltrují ze sestavy.
Následující tabulka zobrazuje sloupce v sestavě.
Sloupec | Popis |
---|---|
Name | Název funkce pro každou úroveň zásobníku volání. |
Inkluzivní ukázky | Celkový počet vzorků shromážděných pro všechny zásobníky, které se zahrnou do této úrovně stromu zásobníku volání. Inkluzivní číslo je součet exkluzivních vzorků pro tuto funkci a inkluzivní čítače pro všechny jeho podřízené uzly. |
Exkluzivní ukázky | Celkový počet shromážděných vzorků, pro které je tato funkce nejnižší úrovní zásobníku volání. |
% inclusive | Procento celkových vzorků zobrazených ve sloupci inkluzivních vzorků Procenta se zaokrouhlují na dvě desetinná místa. |
% exclusive | Procento celkových vzorků zobrazených ve sloupci exkluzivních vzorků Procenta se zaokrouhlují na dvě desetinná místa. |
Detaily | Plně kvalifikovaný název funkce. To zahrnuje počet řádků, pokud je k dispozici. |
Tato tabulka sestavy se zobrazuje v zobrazení Doba provádění (zobrazení vláken).
Sestava značek
Sestava značek obsahuje značky v zobrazeném časovém rámci. Posouvání nebo přiblížení nebo skrytí pruhů může způsobit, že se značky zobrazí nebo zmizí. Sestava obsahuje tyto informace o každé značce:
Čas, kdy začal, vzhledem k začátku trasování.
Doba trvání. Doba trvání je nulová pro příznaky a zprávy, protože představují okamžité.
ID vlákna, které ho vygenerovalo.
Zprostředkovatel sledování událostí pro Windows (ETW), který ho vygeneroval.
Řada značek, ze které byla napsána.
Kategorie událostí, ke které patří.
Jeho úroveň důležitosti.
Jeho typ (span, flag, or message).
Základní popis toho, co představuje
Zvolte tlačítko Exportovat a uložte sestavu značek jako soubor CSV. Data v souboru CSV můžete použít s jinými aplikacemi nebo nástroji.
Poznámka:
Sestava značek může zobrazit 1 000 značek. Pokud chcete zobrazit všechny značky, exportujte celou sestavu do souboru CSV.
Souhrnná sestava pro jednotlivá vlákna
Tento pruhový graf zobrazuje poměr času, kdy každé skryté vlákno stráví v každé kategorii aktivity během aktuálně viditelného časového rozsahu. "Provádění" znamená, že vlákno se spouští; všechny ostatní kategorie znamenají, že vlákno čeká na něco.