Udostępnij za pośrednictwem


Widok wątków w wizualizatorze współbieżności

Widok wątków to najbardziej szczegółowy i bogaty w funkcje widok w wizualizatorze współbieżności. W widoku Wątki można określić, które wątki wykonują kod podczas segmentu wykonywania, i analizować, czy wątki są wykonywane, czy blokowane z powodu synchronizacji, operacji we/wy lub innych powodów. Wątki wyświetlają również raporty dotyczące wykonywania drzewa stosu wywołań i odblokowywania wątków.

Podczas wykonywania wątków wizualizator współbieżności zbiera przykłady. Gdy wątek przestał wykonywać, wizualizator sprawdza wszystkie zdarzenia przełącznika kontekstu systemu operacyjnego dla wątku. Przełączniki kontekstowe mogą wystąpić, ponieważ:

  • Wątek jest blokowany dla elementu pierwotnego synchronizacji.
  • Kwant wątku wygasa.
  • Wątek tworzy blokujące żądanie we/wy.

Concurrency Visualizer kategoryzuje zdarzenia wątku i przełącznika kontekstu oraz wyszukuje stosy wywołań wątków pod kątem dobrze znanych interfejsów API blokujących. Wyświetla kategorie wątków w aktywnej legendzie w lewym dolnym rogu widoku Wątki . W większości przypadków można zidentyfikować główną przyczynę zdarzenia blokującego, sprawdzając stosy wywołań, które odpowiadają zdarzeniom przełącznika kontekstu.

Jeśli nie ma dopasowania stosu wywołań, funkcja Concurrency Visualizer używa przyczyny oczekiwania dostarczonej przez system Windows. Jednak kategoria systemu Windows może być oparta na szczegółach implementacji i może nie odzwierciedlać intencji użytkownika. Na przykład system Windows zgłasza przyczynę oczekiwania na blokowanie natywnej szczupłej blokady modułu zapisywania czytnika jako we/wy zamiast synchronizacji.

Widok wątków pokazuje również zależności między wątkami. Jeśli na przykład zidentyfikujesz wątek zablokowany w obiekcie synchronizacji, możesz znaleźć wątek, który go odblokował. Możesz zbadać stos wywołań dla odblokowywania wątku w momencie odblokowania drugiego.

Widok Wątki umożliwia:

  • Zidentyfikuj przyczyny, dla których interfejs użytkownika aplikacji nie odpowiada w niektórych fazach wykonywania.
  • Określ ilość czasu poświęcanego na blokowanie synchronizacji, operacji we/wy, błędów strony i innych zdarzeń.
  • Odkryj stopień interferencji z innych procesów wykonywanych w systemie.
  • Identyfikowanie problemów z równoważeniem obciążenia na potrzeby wykonywania równoległego.
  • Znajdź przyczyny nieoptymalnego lub nieistniejących skalowalności. Na przykład dlaczego wydajność aplikacji równoległej nie poprawia się, gdy dostępnych jest więcej rdzeni logicznych.
  • Poznaj stopień współbieżności w aplikacji, aby ułatwić równoległość.
  • Identyfikowanie zależności między wątkami procesów roboczych i krytycznymi ścieżkami wykonywania.

Korzystanie z widoku wątków

Aby uruchomić wizualizator współbieżności, wybierz pozycję Analizuj>wizualizator współbieżności, a następnie wybierz opcję, taką jak Uruchom nowy proces.

Concurrency Visualizer uruchamia aplikację i zbiera ślad do momentu wybrania pozycji Zatrzymaj kolekcję. Wizualizator analizuje ślad i wyświetla wyniki na stronie raportu śledzenia.

Wybierz kartę Wątki w lewym górnym rogu raportu, aby otworzyć widok Wątki .

Threads view

Wybierz przedziały czasu i wątki, aby rozpocząć analizę wydajności.

Analiza osi czasu

Górna część widoku Wątki jest osią czasu. Oś czasu przedstawia aktywność wszystkich wątków w procesie oraz wszystkie urządzenia dysków fizycznych na komputerze hosta. Wyświetla również zdarzenia działania i znaczniki procesora GPU.

Na osi czasu oś x to czas, a na osi y to kilka kanałów:

  • Dwa kanały we/wy dla każdego dysku w systemie, jeden kanał odczytu i jeden dla zapisów.
  • Kanał dla każdego wątku w procesie.
  • Kanały znaczników, jeśli istnieją zdarzenia znacznika w śladzie. Kanały znaczników są początkowo wyświetlane w kanałach wątków, które wygenerowały te zdarzenia.
  • Kanały procesora GPU.

Początkowo wątki są sortowane w kolejności, w której są tworzone, więc główny wątek aplikacji jest najpierw. Wybierz inną opcję na liście rozwijanej Sortuj według , aby sortować wątki według innego kryterium, takiego jak Wykonywanie.

Kolory osi czasu wskazują stan wątku w danym momencie. Zielone segmenty są wykonywane, czerwone segmenty są blokowane do synchronizacji, żółte segmenty są wywłaszczone, a fioletowe segmenty są zaangażowane w we/wy urządzenia.

Możesz powiększyć, aby wyświetlić więcej szczegółów, lub pomniejsić, aby wyświetlić dłuższy przedział czasu. Wybierz segmenty i punkty na wykresie, aby uzyskać szczegółowe informacje o kategoriach, godzinach rozpoczęcia, opóźnieniach i stanach stosu wywołań.

Użyj osi czasu, aby zbadać równowagę pracy między wątkami, które są zaangażowane w pętlę równoległą lub w zadaniach współbieżnych. Jeśli ukończenie jednego wątku trwa dłużej niż inne, praca może być niezrównoważone. Możesz zwiększyć wydajność aplikacji, dystrybuując pracę jeszcze bardziej równomiernie wśród wątków.

Jeśli tylko jeden wątek jest wykonywany w danym momencie, aplikacja może nie korzystać z pełnej współbieżności w systemie. Wykres osi czasu umożliwia badanie zależności między wątkami i relacjami czasowymi między blokowaniem i zablokowanymi wątkami. Aby zmienić kolejność wątków, wybierz wątek, a następnie wybierz ikonę w górę lub w dół na pasku narzędzi.

Możesz ukryć wątki, które nie wykonują pracy lub są całkowicie zablokowane, ponieważ ich statystyki są nieistotne i mogą zatkać raporty. Ukryj wątki, wybierając ich nazwy, a następnie wybierając pozycję Ukryj zaznaczone wątki lub Ukryj wszystkie z wyjątkiem zaznaczonych ikon wątków na pasku narzędzi. Aby zidentyfikować wątki do ukrycia, wybierz link Podsumowanie poszczególnych wątków w lewym dolnym rogu. Wątki, które nie mają żadnych działań, można ukryć na wykresie Podsumowanie poszczególnych wątków.

Szczegóły wykonywania wątku

Aby uzyskać bardziej szczegółowe informacje na temat segmentu wykonywania, wybierz punkt na zielonym segmencie osi czasu. Wizualizator współbieżności wyświetla czarną karetki nad wybranym punktem i pokazuje stos wywołań na karcie Current (Bieżąca ) w dolnym okienku. Możesz wybrać wiele punktów w segmencie wykonywania.

Uwaga

Wizualizator współbieżności może nie być w stanie rozpoznać wyboru w segmencie wykonywania, jeśli czas trwania segmentu jest krótszy niż jeden milisekund.

Aby uzyskać profil wykonywania dla wszystkich niezakrytych wątków w aktualnie wybranym zakresie czasu, wybierz pozycję Wykonywanie w legendzie w lewym dolnym rogu.

Szczegóły blokowania wątków

Aby uzyskać informacje o określonym regionie w wątku, umieść kursor na tym regionie na osi czasu, aby wyświetlić etykietkę narzędzia. Etykietka narzędzia zawiera informacje, takie jak kategoria, czas rozpoczęcia i opóźnienie. Wybierz region, aby wyświetlić stos wywołań w tym momencie w czasie na karcie Bieżące w dolnym okienku. Okienko zawiera również kategorię, opóźnienie, blokowanie interfejsu API, jeśli istnieje, i odblokowanie wątku, jeśli istnieje. Sprawdzając stos wywołań, można określić podstawowe przyczyny zdarzeń blokujących wątki.

Ścieżka wykonywania może mieć kilka zdarzeń blokujących. Aby je zbadać, blokując kategorię i szybciej znaleźć obszary problemów, wybierz kategorię blokującą w legendzie po lewej stronie.

Zależności między wątkami

Wizualizator współbieżności pokazuje zależności między wątkami, dzięki czemu można określić, co blokowany wątek próbował wykonać, i jaki inny wątek włączył wykonywanie.

Aby określić, który wątek odblokował inny wątek, wybierz segment blokowania na osi czasu. Jeśli wizualizator współbieżności może określić odblokowywanie wątku, rysuje linię między odblokowywaniem wątku a segmentem wykonywania, który jest zgodny z segmentem blokującym. Wybierz kartę Odblokowywanie stosu w dolnym okienku, aby wyświetlić odpowiedni stos wywołań.

Raporty profilów

Poniżej wykresu osi czasu znajduje się okienko z kartami Raport profilu, Bieżący i Odblokowywanie raportu stosu . Raporty są automatycznie aktualizowane podczas zmieniania wybranych osi czasu i wątków. W przypadku dużych śladów okienko raportów może być tymczasowo niedostępne podczas obliczania aktualizacji.

Karta Raport profilu

Raport profilu ma dwa filtry:

  • Aby odfiltrować wpisy drzewa wywołań, w których spędził mało czasu, wpisz wartość filtru z zakresu od 0 do 99 procent w polu Redukcja szumu. Wartość domyślna to 2 procent.
  • Aby wyświetlić drzewa wywołań tylko dla kodu, zaznacz pole wyboru Tylko mój kod . Aby wyświetlić wszystkie drzewa wywołań, wyczyść pole wyboru.

Karta Raport profilu zawiera raporty dla kategorii i linków w legendzie. Aby wyświetlić raport, wybierz jeden z wpisów po lewej stronie:

  • Wykonanie Raport wykonywania przedstawia podział czasu, przez jaki aplikacja spędziła w wykonaniu.

    Aby znaleźć wiersz kodu, w którym jest spędzany czas wykonywania, rozwiń drzewo wywołań i w menu skrótów dla wpisu drzewa wywołań wybierz pozycję Wyświetl źródło lub Wyświetl lokacje wywołań. Widok Źródło lokalizuje wykonany wiersz kodu. Wyświetl lokacje wywołań lokalizuje wiersz kodu, który nazywa się wykonanym wierszem. Jeśli istnieje tylko jeden wiersz witryny wywołania, jego kod jest wyróżniony. Jeśli istnieje kilka witryn wywołań, wybierz tę, która ma zostać wyświetlona w oknie dialogowym, a następnie wybierz pozycję Przejdź do źródła. Najczęściej najbardziej przydatne jest zlokalizowanie witryny wywołania, która ma najwięcej wystąpień, jak najwięcej czasu lub obu tych wystąpień. Aby uzyskać więcej informacji, zobacz Raport profilu wykonywania.

  • Synchronizacja Raport synchronizacji przedstawia wywołania, które są odpowiedzialne za bloki synchronizacji, wraz z łącznym czasem blokowania każdego stosu wywołań. Aby uzyskać więcej informacji, zobacz Czas synchronizacji.

  • We/ Wy Raport we/wy pokazuje wywołania, które są odpowiedzialne za bloki we/ wy, wraz z łącznym czasem blokowania każdego stosu wywołań. Aby uzyskać więcej informacji, zobacz Czas we/wy (widok Wątki).

  • Raport Sleep The Sleep pokazuje wywołania, które są odpowiedzialne za bloki uśpienia, wraz z łącznym czasem blokowania każdego stosu wywołań. Aby uzyskać więcej informacji, zobacz Czas uśpienia.

  • Zarządzanie pamięcią Raport Zarządzanie pamięcią pokazuje wywołania, w których wystąpiły bloki zarządzania pamięcią, wraz z łącznym czasem blokowania każdego stosu wywołań. Skorzystaj z tych informacji, aby zidentyfikować obszary, w których występują nadmierne stronicowanie lub problemy z odzyskiwaniem pamięci. Aby uzyskać więcej informacji, zobacz Czas zarządzania pamięcią.

  • Wywłaszczanie raport Preemption pokazuje, gdzie procesy w systemie wywłaszczyły bieżący proces, a poszczególne wątki, które zastąpiły wątki w bieżącym procesie. Te informacje umożliwiają zidentyfikowanie procesów i wątków, które są najbardziej odpowiedzialne za wywłaszczanie. Aby uzyskać więcej informacji, zobacz Czas wywłaszczania.

  • Przetwarzanie interfejsu użytkownika Raport przetwarzania interfejsu użytkownika przedstawia wywołania, które są odpowiedzialne za bloki przetwarzania interfejsu użytkownika, wraz z łącznym czasem blokowania każdego stosu wywołań. Aby uzyskać więcej informacji, zobacz Czas przetwarzania interfejsu użytkownika.

  • Na podsumowanie wątku Wybierz na wątek Podsumowanie , aby wyświetlić wykres przedstawiający stan wątków dla aktualnie wybranego interwału czasu. Kolumny kodowane kolorami pokazują całkowity czas, jaki każdy wątek spędził w uruchomieniu, zablokowanym, we/wy i innych stanach. Wątki są oznaczone etykietą u dołu. Po dostosowaniu poziomu powiększenia na wykresie osi czasu ten wykres zostanie automatycznie zaktualizowany.

    Na niektórych poziomach powiększenia niektóre wątki mogą nie być wyświetlane na wykresie. W takim przypadku wielokropek (...) pojawia się po prawej stronie. Jeśli żądany wątek nie jest wyświetlany, możesz ukryć inne wątki. Aby uzyskać więcej informacji, zobacz Raport podsumowania poszczególnych wątków.

  • Operacje na dysku Wybierz operacje dysku, aby pokazać procesy i wątki związane z we/wy dysku dla bieżącego procesu, pliki, których dotyczyły (na przykład załadowane biblioteki DLL), ile bajtów odczytanych i inne informacje. Za pomocą tego raportu możesz ocenić czas spędzony na uzyskiwaniu dostępu do plików podczas wykonywania, zwłaszcza gdy proces wydaje się być powiązany z operacjami we/wy. Aby uzyskać więcej informacji, zobacz Raport dotyczący operacji na dysku.

Bieżąca karta

Na tej karcie przedstawiono stos wywołań dla wybranego punktu w segmencie wątku na wykresie osi czasu. Stosy wywołań są przycinane, aby pokazać tylko działanie powiązane z twoją aplikacją.

Odblokowywanie karty stosu

Na tej karcie pokazano, który wątek odblokował wybrany wątek, oraz odblokowywanie stosu wywołań.

Kanały (widok wątków)

Wizualizator współbieżności przedstawia cztery rodzaje kanałów: kanały wątków, kanały dysku, kanały znaczników i kanały procesora GPU.

Kanały wątków

Kanał wątku pokazuje stan wątku według koloru dla tylko jednego wątku. Po wstrzymaniu nazwy kanału zostanie wyświetlona funkcja startowa dla danego wątku. Wizualizator współbieżności wykrywa kilka rodzajów wątków. Najbardziej typowe rodzaje przedstawiono w poniższej tabeli.

Wątek opis
Wątek główny Wątek, który uruchomił aplikację.
Wątek procesu roboczego Wątek utworzony przez główny wątek aplikacji.
Wątek procesu roboczego CLR Wątek procesu roboczego, który został utworzony przez środowisko uruchomieniowe języka wspólnego (CLR).
Pomocnik debugera Wątek procesu roboczego utworzony przez debuger programu Visual Studio.
Wątek ConcRT Wątek utworzony przez środowisko uruchomieniowe współbieżności firmy Microsoft.
Wątek GDI Wątek utworzony przez GDIPlus.
Wątki OLE/RPC Wątek, który został utworzony jako wątek procesu roboczego RPC.
Wątek RPC Wątek, który został utworzony jako wątek RPC.
Wątek Winsock Wątek, który został utworzony jako wątek Winsock.
Pula wątków Wątek utworzony przez pulę wątków CLR.

Kanały dysku

Kanały dysków odpowiadają dyskom fizycznym w komputerze. Ponieważ istnieją oddzielne kanały dla operacji odczytu i zapisu dla każdego dysku fizycznego w systemie, każdy dysk ma dwa kanały. Numery dysków odpowiadają nazwom urządzeń jądra. Kanał dysku jest wyświetlany tylko wtedy, gdy na dysku wystąpiły działania.

Kanały znacznikowe

Kanały znaczników odpowiadają zdarzeń generowanych przez aplikację i używanych przez nią bibliotek. Na przykład biblioteka równoległa zadań, biblioteka wzorców równoległych i C++ AMP generują zdarzenia, które są wyświetlane jako znaczniki. Każdy kanał znacznika jest skojarzony z identyfikatorem wątku, który jest wyświetlany obok opisu kanału. Identyfikator identyfikuje wątek, który wygenerował zdarzenie. Opis kanału zawiera nazwę dostawcy śledzenia zdarzeń dla systemu Windows (ETW), który wygenerował zdarzenia. Jeśli kanał wyświetla zdarzenia z zestawu SDK concurrency Visualizer, zostanie również wyświetlona nazwa serii.

Kanały procesora GPU

Kanały procesora GPU wyświetlają informacje o działaniu DirectX 11 w systemie. Każdy aparat DirectX skojarzony z kartą graficzną ma oddzielny kanał. Poszczególne segmenty reprezentują czas spędzony na przetwarzaniu pakietu DMA.

Kopiuj zaznaczenie

Aby skopiować cały stos wywołań z karty raportu, kliknij przycisk Kopiuj. Następnie możesz wkleić stos wywołań w dowolnym programie, który obsługuje to działanie.

Bieżąca karta

Klikając kartę Bieżąca , możesz zobaczyć stos wywołań (jeśli jest dostępny), który znajduje się najbliżej bieżącego punktu zaznaczenia na osi czasu, jeśli wybrano segment wątku procesora CPU. W takim przypadku punkt zaznaczenia jest reprezentowany przez czarną strzałkę lub daszek nad osią czasu. Po wybraniu segmentu blokującego karetka nie jest wyświetlana, ponieważ nie było wykonania. Jednak segment jest nadal wyróżniony i wyświetlany jest stos wywołań.

Na karcie Bieżące są również wyświetlane informacje o segmentach działań DirectX, znacznikach i dostępie we/wy. W przypadku segmentów działań DirectX informacje o sposobie przetwarzania pakietów DMA przez kolejkę sprzętową są wyświetlane. W przypadku znaczników wyświetlane są informacje o opisie i typie znacznika. W przypadku dostępu we/wy są wyświetlane informacje o pliku i liczbie bajtów odczytu lub zapisu.

Pusty segment osi czasu

W wizualizatorze współbieżności przyczyna, dla którego sekcja osi czasu jest pusta (ma białe tło) zależy od rodzaju kanału.

  • W przypadku kanału wątku procesora CPU oznacza to, że wątek nie istniał w tej części osi czasu. Jeśli interesuje Cię wątek, możesz znaleźć jego sekcję wykonywania za pomocą kontrolki powiększania lub przewijania w poziomie.

  • W przypadku kanału we/wy oznacza to, że w imieniu procesu docelowego w tym momencie nie wystąpił żaden dostęp do dysku.

  • W przypadku kanału DirectX oznacza to, że żadna praca procesora GPU nie została wykonana w imieniu procesu docelowego w tej części osi czasu.

  • W przypadku kanału znacznika oznacza to, że nie wygenerowano żadnych znaczników.

Przycisk Eksportuj (Concurrency Visualizer)

Przycisk Eksportuj umożliwia wyeksportowanie stosu wywołań jako .Plik csv dla własnych rekordów lub do użycia z innym narzędziem, takim jak Program Microsoft Excel.

Tylko mój kod (Widok wątków)

Jeśli wybierzesz tę opcję, przefiltrujesz stos wywołań, aby wyświetlić tylko kod i jeden poziom wywoływanych funkcji.

Aktywując tę opcję, można znacznie zmniejszyć złożoność stosu wywołań i być może ułatwić diagnozowanie konkretnego problemu.

W niektórych przypadkach wybranie tej opcji może odfiltrować wywołanie blokujące. Jeśli potrzebujesz pełnych szczegółów stosu wywołań, aby to określić, wyczyść tę opcję, aby uwidocznić pełny stos wywołań.

Zarządzanie kanałami

W widoku wątków w wizualizatorze współbieżności można zorganizować kanały dla procesu, aby można było zbadać określone wzorce. Możesz sortować kanały, przenosić je w górę i w dół oraz ukrywać lub pokazywać.

Sortuj według

Za pomocą kontrolki Sortuj według można sortować wątki według różnych kryteriów na podstawie bieżącego poziomu powiększenia. Jest to szczególnie przydatne, gdy szukasz określonego wzorca. Można sortować według następujących kryteriów:

Kryterium Definicja
Godzina rozpoczęcia Sortuje wątki według ich czasów rozpoczęcia. Jest to domyślna kolejność sortowania.
Godzina zakończenia Sortuje wątki według czasów zakończenia.
Wykonanie Sortuje wątki według procentu czasu spędzonego w wykonaniu.
Synchronizacja Sortuje wątki według procentu czasu spędzonego w synchronizacji.
WE/WY Sortuje wątki według procentu czasu spędzonego w operacji we/wy (odczytywanie i zapisywanie danych).
Snu Sortuje wątki według procentu czasu spędzonego w uśpieniu.
Stronicowanie Sortuje wątki według procentu czasu spędzonego na stronicowaniu.
Wywłaszczanie Sortuje wątki według procentu czasu spędzonego w wywłaszczenia.
Przetwarzanie interfejsu użytkownika Sortuje wątki według procentu czasu spędzonego w przetwarzaniu interfejsu użytkownika.

Przenieś wybrany kanał w górę lub w dół

Możesz użyć tych kontrolek, aby przenieść kanał w górę lub w dół na liście. Możesz na przykład umieścić powiązane kanały obok siebie, aby ułatwić sprawdzenie określonego wzorca lub relacji między wątkami.

Przenoszenie wybranego kanału do góry lub dołu

Możesz przenieść wybrane kanały do góry lub dolnej części listy, aby można było zbadać określony wzorzec lub przenieść niektóre kanały z drogi podczas badania innych.

Ukryj wybrane kanały

Wybierz tę kontrolkę, jeśli chcesz ukryć kanały. Jeśli na przykład wątek ma 100 procent synchronizacji w trakcie procesu zarządzanego, możesz je ukryć podczas analizowania innych wątków.

Uwaga

Ukrycie wątku powoduje również usunięcie go z czasu obliczania, który jest wyświetlany w aktywnej legendzie i w raportach profilu.

Pokaż wszystkie kanały

Ta kontrolka jest aktywna, gdy co najmniej jeden kanał jest ukryty. Jeśli go wybierzesz, zostaną wyświetlone wszystkie ukryte elementy i zostaną zwrócone do obliczeń czasu.

Przenieś znaczniki na górę

Jeśli ślad zawiera zdarzenia znacznika, możesz użyć tego polecenia, aby przenieść kanały znaczników na górę osi czasu. Ich względna kolejność jest zachowywana.

Znaczniki grupowania według wątku

Jeśli ślad zawiera zdarzenia znacznika, możesz użyć tego polecenia, aby zgrupować kanały znaczników w wątku, który wygenerował zdarzenia znacznika. Kanały dysków są przenoszone na górę listy kanałów, a kanały procesora GPU są przenoszone do dołu.

Tryb miary włączony/wyłączony

Za pomocą tego narzędzia można dokładnie zmierzyć długość czasu na osi czasu. Aby włączyć tryb miary, kliknij przycisk miary (z ikoną linijki), a następnie przeciągnij na osi czasu. Podczas przeciągania zwróć uwagę, że obszar poniżej wskaźnika jest wyróżniony kolorem żółtym, a mierzony czas pojawia się na pasku narzędzi po prawej stronie przycisku. Ta wartość jest obliczana dynamicznie podczas przeciągania, dzięki czemu można natychmiast zobaczyć, jak długo trwa określone zdarzenie. Po zwolnieniu przycisku myszy wartość czasu pozostaje widoczna.

Można powtórzyć proces pomiaru, ale pokazano tylko najnowszą miarę. Kliknij ponownie przycisk miary, aby wyłączyć tryb miary.

Procent redukcji szumu

Domyślnie wartość ustawienia Procent redukcji szumu wynosi 2. W drzewie wywołań są wyświetlane tylko wpisy, które mają procent czasu inkluzywnego większego lub równego temu ustawieniu. Zmieniając ustawienie, można kontrolować liczbę wpisów wyświetlanych w drzewie wywołań. Na przykład zmiana wartości na 10 spowoduje wyświetlenie tylko wpisów drzewa wywołań, które mają czas inkluzywny dłuższy lub równy 10%. Zwiększając wartość ustawienia, można skoncentrować się na wpisach, które mają większy wpływ na wydajność procesu.

Raport oparty na widocznym zakresie czasu

W widoku Profil są wyświetlane raporty oparte na aktualnie widocznym zakresie czasu i kanałach. Aby wyświetlić szczegóły różnych podzestawów danych, kliknij pozycję Elementy w legendzie.

Więcej informacji na temat danych można znaleźć w temacie Threads View reports (Wyświetlanie raportów wątków).

Łącznik gotowy do wątku

Po kliknięciu segmentu blokującego w celu wyświetlenia stosu wywołań i jego odblokowywania łącznik gotowy do wątku może również zostać wyświetlony. Jeśli zdarzenie odblokowania wystąpiło w innym wątku w bieżącym procesie, łącznik gotowy do wątku wizualnie identyfikuje segment wątku i wykonywania, który umożliwił wznowienie wykonywania zablokowanego wątku.

Daszek osi czasu

Po wybraniu punktu na osi czasu segmentu wykonywania wątku nad nim pojawi się daszek osi czasu. Stos wywołań wyświetlany na bieżącej karcie stosu to ten, który znajduje się najbliżej miejsca kliknięcia segmentu. Daszek służy do kojarzenia stosu wywołań, który jest wyświetlany na karcie Current (Bieżąca) z chwilą próbkowania. Daszek pokazuje dokładną lokalizację stosu wywołań, który jest najbliższym stosem wywołań do wybranej przez użytkownika lokalizacji.

Odblokowywanie stosu

Jeśli aktualnie wybrany element wątku reprezentuje zablokowany segment, który później zaczął być wykonywany po odblokowaniu przez inny wątek w bieżącym procesie, stos wywołań dla wątku, który wykonał odblokowanie, jest wyświetlany na tej karcie.

Widoczny profil osi czasu

Profil widocznej osi czasu widoku blokowania wątków zawiera informacje statystyczne i linki do raportów. W miarę powiększania, powiększania, przewijania w poziomie, ukrywania kanałów lub wyświetlania kanałów liczby w aktywnej legendzie zmieniają się, aby odzwierciedlały to, co jest obecnie wyświetlane. Aby wyświetlić raport o elemencie w legendzie, kliknij element.

Kontrolka Powiększenia (widok wątków)

Kontrolka powiększenia to suwak, który ułatwia powiększanie i zmniejszanie osi czasu, dzięki czemu można skupić się na obszarach szczególnie interesujących. Ponieważ ta kontrolka powiększa się w środku widoku osi czasu, przed powiększeniem wyśrodkujesz obszar zainteresowania.

Powiększ, przeciągając w widoku osi czasu

Powiększ, przeciągając w widoku osi czasu, tworzy obszar wyróżniony kolorem żółtym. Po zwolnieniu przycisku myszy widok osi czasu powiększa wybrany zakres.

Powiększanie i zmniejszanie przy użyciu kółka myszy

Kliknij dowolny punkt na osi czasu (aby upewnić się, że ma fokus myszy), a następnie naciśnij klawisze Ctrl i przesuń kółko myszy (powiększa się do przodu; pomniejsza do tyłu).