Wątki wyświetlają raporty w wizualizatorze współbieżności
Ten artykuł zawiera informacje o raportach w widoku Wątki wizualizatora współbieżności.
Raport profilu czasu blokowania
Raporty profilów udostępniają zagregowane dane czasu blokowania dla stosów wywołań specyficznych dla każdej kategorii blokującej (na przykład "We/Wy" lub "Synchronizacja"). Raport Preemption zawiera listę procesów, które poprzedzały bieżący proces wraz z liczbą wystąpień wywłaszczania. Aby utworzyć raport profilu blokującego, narzędzie zbiera blokowanie wywołań interfejsu API i gromadzi je w drzewie stosów wywołań. Dane wyświetlane w tych raportach różnią się w zależności od bieżącego zakresu czasu, ukrytych wątków i dwóch następujących filtrów, które mogą być stosowane:
Jeśli wybrano opcję Tylko mój kod, zostaną wyświetlone tylko ramki stosu zawierające kod użytkownika oraz jeden poziom poniżej kodu użytkownika.
Jeśli ustawiono wartość Redukcji szumu, zestawione stosy, które mają mniejszą niż określona częstotliwość, zostaną pominięte.
Rozwiń dowolny wpis drzewa wywołań, aby znaleźć wiersz kodu, w którym jest poświęcany czas blokowania. Aby zlokalizować wiersz źródła dla wpisu, w menu skrótów wybierz pozycję Wyświetl źródło. Aby zlokalizować wiersz kodu, który nazwał ten, w menu skrótów wybierz pozycję Wyświetl witryny połączeń. Jeśli jest dostępna tylko jedna lokacja wywołania, polecenie łączy się z wyróżnionym wierszem kodu dla witryny wywołania. Jeśli dostępnych jest wiele witryn wywołań, polecenie otwiera okno dialogowe, w którym można wybrać wpis, a następnie wybrać przycisk Przejdź do źródła , aby zlokalizować wyróżnioną witrynę wywołania. Najczęściej najbardziej przydatne jest wyświetlenie kodu źródłowego dla witryny wywołania, która ma najwięcej wystąpień, jak najwięcej czasu lub obu tych elementów.
Blokowanie kolumn raportu czasu
W poniższej tabeli przedstawiono kolumny dla każdego raportu o czasie blokowania.
Nazwa kolumny | opis |
---|---|
Nazwa/nazwisko | Nazwa funkcji dla każdego poziomu stosu wywołań. |
Wystąpienia | Liczba wystąpień wywołania blokującego dla widocznego okresu. |
Czas blokowania inkluzywnego | Łączny czas blokowania spędzony dla wszystkich stosów, które są zwijane do tego poziomu drzewa stosu wywołań. Liczba włącznie jest sumą wyłącznego czasu blokowania dla tej funkcji i wyłącznym czasem blokowania dla wszystkich węzłów podrzędnych. |
Wyłączny czas blokowania | Łączny czas blokowania, który jest poświęcany na to działanie, jest najniższym poziomem stosu wywołań. Unikatowy wpis stosu wywołań, który ma wysoki wyłączny czas blokowania, może być funkcją zainteresowania. |
Kategoria interfejsu API/oczekiwania | Wyświetlane tylko dla funkcji na najniższym poziomie stosu wywołań. Po rozpoznaniu podpisu wywołania blokującego podano nazwę interfejsu API blokowania. Jeśli podpis nie zostanie rozpoznany, podano informacje zgłaszane przez jądro. |
Szczegóły | W pełni kwalifikowana nazwa funkcji. Obejmuje to liczbę wierszy, gdy jest dostępna. |
Synchronizacja
Raport Synchronizacja przedstawia wywołania, które są odpowiedzialne za segmenty, które blokują synchronizację, oraz agregujące czasy blokowania każdego stosu wywołań. Aby uzyskać więcej informacji, zobacz Czas synchronizacji.
Snu
Raport Uśpienie pokazuje wywołania, które są odpowiedzialne za czas blokowania, który został przypisany do czasu spędzonego w stanie uśpienia, oraz zagregowane czasy blokowania każdego stosu wywołań. Aby uzyskać więcej informacji, zobacz Czas uśpienia.
WE/WY
Raport We/Wy przedstawia wywołania, które są odpowiedzialne za segmenty, które blokują we/wy, oraz zagregowane czasy blokowania każdego stosu wywołań. Aby uzyskać więcej informacji, zobacz Czas we/wy (widok wątków).
Zarządzanie pamięcią
Raport Zarządzanie pamięcią przedstawia wywołania, które są odpowiedzialne za segmenty, które blokują operacje zarządzania pamięcią, oraz agregujące czasy blokowania każdego stosu wywołań. Aby uzyskać więcej informacji, zobacz Czas zarządzania pamięcią.
Wywłaszczanie
Raport Preemption zawiera listę procesów, które poprzedzały bieżący proces wraz z liczbą wystąpień. Każdy proces można rozwinąć, aby wyświetlić określone wątki, które zastąpiły wątki w bieżącym procesie, i wyświetlić podział wystąpień wstępnego na wątek. Ten raport blokujący jest mniej przydatny niż inne, ponieważ wywłaszczanie jest zwykle nakładane na proces przez system operacyjny, a nie przez problem w kodzie. Aby uzyskać więcej informacji, zobacz Czas wywłaszczania.
Przetwarzanie interfejsu użytkownika
Raport Przetwarzanie interfejsu użytkownika przedstawia wywołania, które są odpowiedzialne za blokowanie segmentów blokujących bloki przetwarzania interfejsu użytkownika oraz agregujące czasy blokowania każdego stosu wywołań. Aby uzyskać więcej informacji, zobacz Czas przetwarzania interfejsu użytkownika.
Raport dotyczący operacji na dysku (Widok wątków)
Raport Operacje na dysku przedstawia operacje we/wy dysku w kanałach dysków.
W przypadku każdego dostępu do dysku, który występuje w imieniu procesu profilowanego w aktualnie widocznym przedziale czasu, te informacje są zgłaszane:
Nazwa i identyfikator PID procesu, który wykonał dostęp do dysku
Identyfikator wątku, który uzyskiwał dostęp do dysku
Nazwa pliku, do którego uzyskiwano dostęp
Liczba odczytów na plik
Liczba odczytanych bajtów
Opóźnienie odczytu w milisekundach
Liczba zapisów
Liczba zapisanych bajtów
Opóźnienie zapisu w milisekundach
Raport profilu wykonania
Raport profilu wykonywania jest tradycyjnym profilem próbkowania. Próbki są pobierane mniej więcej co milisekundy w okresach, gdy wątek jest uruchomiony na rdzeniu logicznym, a wizualizator współbieżności tworzy typowe drzewo wywołań, sortując skumulowany zestaw przykładowych stosów. Na dane w tej tabeli mogą mieć wpływ bieżące zakresy czasu i ukryte wątki, a także te filtry, które mogą być stosowane:
Jeśli wybrano opcję Tylko mój kod, wyświetlane są tylko ramki stosu zawierające kod użytkownika oraz jeden poziom poniżej kodu użytkownika.
Jeśli ustawiono wartość Redukcji szumu, skumulowane stosy, które mają mniejszą niż określona częstotliwość, są filtrowane z raportu
W poniższej tabeli przedstawiono kolumny w raporcie.
Kolumna | Opis |
---|---|
Nazwa/nazwisko | Nazwa funkcji dla każdego poziomu stosu wywołań. |
Przykłady inkluzywne | Łączna liczba próbek zebranych dla wszystkich stosów, które są rzutowane na ten poziom drzewa stosu wywołań. Liczba włącznie to suma wyłącznych próbek dla tej funkcji i liczników inkluzywnych dla wszystkich węzłów podrzędnych. |
Przykłady na wyłączność | Łączna liczba zebranych próbek, dla których ta funkcja jest najniższym poziomem stosu wywołań. |
% inkluzywnego | Procent całkowitej liczby próbek pokazanych w kolumnie przykładów inkluzywnych. Wartości procentowe są zaokrąglane do dwóch miejsc dziesiętnych. |
% wyłącznych | Procent całkowitej liczby próbek pokazanych w kolumnie z wyłącznych próbek. Wartości procentowe są zaokrąglane do dwóch miejsc dziesiętnych. |
Szczegóły | W pełni kwalifikowana nazwa funkcji. Obejmuje to liczbę wierszy, gdy jest dostępna. |
Ta tabela raportu jest widoczna w widoku Czas wykonywania (widok wątków).
Raport dotyczący znaczników
Raport znaczników zawiera listę znaczników w wyświetlonym przedziale czasu. Przesuwanie lub powiększanie lub ukrywanie pasów może spowodować pojawienie się lub zniknięcie znaczników. Raport zawiera te informacje o każdym znaczniku:
Czas, kiedy się rozpoczął, w stosunku do początku śladu.
Jego czas trwania. Czas trwania wynosi zero dla flag i komunikatów, ponieważ reprezentują one natychmiastowe.
Identyfikator wątku, który go wygenerował.
Dostawca śledzenia zdarzeń dla systemu Windows (ETW), który go wygenerował.
Seria znaczników, z której została napisana.
Kategoria zdarzeń, do których należy.
Jego poziom ważności.
Jego typ (span, flaga lub message).
Ogólny opis tego, co reprezentuje
Wybierz przycisk Eksportuj, aby zapisać raport znaczników jako plik CSV. Możesz użyć danych w pliku CSV z innymi aplikacjami lub narzędziami.
Uwaga
Raport znaczników może wyświetlać 1000 znaczników. Aby wyświetlić wszystkie znaczniki, wyeksportuj pełny raport do pliku CSV.
Raport podsumowania wątku
Ten wykres słupkowy przedstawia proporcję czasu, przez który każdy nieukrywany wątek spędza w każdej kategorii działań w aktualnie widocznym zakresie czasu. "Wykonanie" oznacza, że wątek jest wykonywany; wszystkie inne kategorie oznaczają, że wątek czeka na coś.