Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek obsahuje informace o sestavách v zobrazení vláken vizualizátoru souběžnosti.
Zpráva o profilu blokování času
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 preempce obsahuje seznam procesů, které předběhly současný proces, spolu s počtem instancí preempce. Pokud chcete vytvořit sestavu profilu blokace, nástroj shromažďuje blokující API volání a integruje 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ána možnost "Just My Code", zobrazí se pouze snímky zásobníku s uživatelským kódem, včetně jedné úrovně pod uživatelským kódem.
Pokud je nastavena hodnota pro snížení šumu, zásobníky, které mají nižší frekvenci, než je zadáno, se přeskočí.
Rozbalte libovolnou položku ve stromu volání a najděte řádek kódu, ve kterém se spotřebová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ý volal tento, v místní nabídce zvolte Zobrazit místa volání. Pokud je k dispozici jenom jedno volací místo, příkaz se připojí ke zvýrazněnému řádku kódu pro volací místo. 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 nejlepší zobrazit zdrojový kód pro místo volání, které má nejvíce instancí, nejvíce času nebo obojí.
Blokování sloupců sestavy času
Následující tabulka uvádí sloupce pro každý blokující časový report.
| Název sloupce | Description |
|---|---|
| název | Název funkce pro každou úroveň zásobníku volání. |
| Instance | Počet instancí blokujícího volání během viditelného časového období. |
| Inkluzivní blokující čas | Celková doba blokování strávená pro všechny zásobníky, které se dostanou na tuto úroveň stromu volání zásobníku. Inkluzivní číslo je součet výhradního času blokování pro tuto funkci a výhradního času blokování pro všechny její podřízené uzly. |
| Výhradní doba blokování | Celková doba blokování, strávená během toho, kdy je tato funkce na nejnižší úrovni 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 předmětem 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. |
Synchronization
Zpráva o synchronizaci zobrazuje volání, která jsou zodpovědná za segmenty, které blokují při synchronizaci, a agregované doby blokování pro každý 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 blokované při vstupně-výstupních operacích a agregovanou dobu blokování jednotlivých zásobníků volání. Další informace najdete v tématu čas I/O (pohled vláken).
Správa paměti
Sestava správy paměti zobrazuje volání, která jsou zodpovědná za segmenty blokované kvůli operacím správy paměti, a souhrnné doby blokování jednotlivých zásobníků volání. Další informace naleznete v tématu Čas správy paměti.
Přerušení
Zpráva o přerušení obsahuje seznam procesů, které předběhly aktuální proces, spolu s počtem jejich výskytů. 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 preempci vašeho procesu obvykle provádí operační systém, nikoli problém ve vašem kódu. Další informace naleznete v tématu Preempční čas.
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 operací disku (zobrazení vláken)
Sestava operací disku zobrazuje I/O operace disku na 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
Zpráva profilu vykonávání
Zpráva o profilu spuštění je tradiční profil vzorkování. Vzorky se pořizují přibližně každou milisekundu během období, kdy vlákno běží na logickém jádru, a Vizualizér souběžnosti vytvoří typický strom volání sestavením kumulované sady vzorkový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ána volba Pouze můj kód, zobrazí se pouze rámce zásobníku, které mají uživatelský kód, a k tomu ještě jednu úroveň pod uživatelským kódem.
Pokud je nastavena hodnota pro snížení šumu, zásobníky, které mají frekvenci nižší než zadanou, jsou ze sestavy vyřazeny.
Následující tabulka zobrazuje sloupce ve zprávě.
| Sloupec | Description |
|---|---|
| Název | Název funkce pro každou úroveň zásobníku volání. |
| Inkluzivní vzorky | Celkový počet vzorků shromážděných pro všechny zásobníky volání, které spadají do této úrovně stromu zásobníku volání. Inkluzivní číslo je součet exkluzivních vzorků pro tuto funkci a inkluzivních čítačů pro všechny její 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í. |
| % Inkluzivní | Procento celkových vzorků zobrazených ve sloupci inkluzivních vzorků Procenta se zaokrouhlují na dvě desetinná místa. |
| % exkluzivní | Procento celkových vzorků zobrazených ve sloupci exkluzivních vzorků Procenta se zaokrouhlují na dvě desetinná místa. |
| Podrobnosti | 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 ).
Výkaz 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í. Zpráva obsahuje tyto informace o každé značce:
Čas, kdy to začalo, vzhledem k začátku sledování.
Doba trvání. Doba trvání je nulová pro příznaky a zprávy, protože představují okamžik.
ID vlákna, které ho vygenerovalo.
Zprostředkovatel sledování událostí pro Windows (ETW), který ho vygeneroval.
Řada značek, ze které bylo čerpáno.
Kategorie událostí, ke které patří.
Jeho úroveň důležitosti.
Jeho typ (rozsah, příznak nebo zpráva).
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:
Zpráva o značkách může zobrazit 1 000 značek. Pokud chcete zobrazit všechny značky, exportujte celou sestavu do souboru CSV.
Souhrnná zpráva pro každé vlákno
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.