Widok rdzeni

Widok rdzeni pokazuje, jak wykonywanie wątku zostało zamapowane na rdzenie procesora logicznego (wybierz pozycję Analizuj>wizualizator współbieżności, aby uruchomić wizualizator współbieżności). Jeśli piszesz aplikacje serwera, ten widok może pomóc w optymalizacji wydajności pamięci podręcznej przy użyciu koligacji wątków lub zarządzania pulą wątków. Może również pomóc w zbadania przypadków, w których użycie koligacji wątku mogło pogorszyć problem migracji między rdzeniami. Widok rdzeni ma dwie części: graf i legendę.

Wykres przedstawia rdzenie logiczne na osi y i czas na osi x. Każdy wątek na grafie ma unikatowy kolor, dzięki czemu można śledzić jego ruch między rdzeniami w czasie. Wątki na tym wykresie można filtrować, wybierając je w obszarze legendy.

Obszar legendy zawiera wpis dla każdego koloru na grafie. Każdy wpis przedstawia kolor i nazwę wątku, liczbę przełączników kontekstowych między rdzeniami, łączną liczbę przełączników kontekstowych oraz procent przełączników kontekstowych, które przecinają rdzenie. Legenda jest sortowana według liczby przełączników kontekstowych między rdzeniami w kolejności malejącej. Wyświetla on listę tylko wątków wykonywanych w wyświetlonym zakresie czasu. Lista zostanie zaktualizowana w przypadku powiększania lub przesuwania.

Legenda widoku rdzeni

Legenda widoku rdzeni identyfikuje każdy wątek według koloru i nazwy. Zawiera on kolumny, które pokazują liczby przełączników kontekstowych między rdzeniami, przełączników kontekstu całkowitej oraz procent przełączników kontekstowych, które przecinają rdzenie. Wiersze w legendzie są sortowane według liczby przełączników kontekstowych między rdzeniami w kolejności malejącej.

Możesz wybrać wiersze w legendzie, aby filtrować wątki wyświetlane na osi czasu. Na osi czasu są wyświetlane tylko wybrane wątki. Jeśli nie wybrano żadnych wierszy, wszystkie wiersze są wyświetlane na osi czasu.

Przełączniki kontekstowe między rdzeniami kosztują więcej obciążeń i wydajności niż przełączniki, które pozostają na tym samym rdzeniu logicznym. Podczas przełączania kontekstu rejestry procesora są zapisywane i przywracane, wykonywany jest kod jądra systemu operacyjnego, wpisy buforu lookaside tłumaczenia są ponownie ładowane, a potok procesora jest opróżniany. Przełączniki kontekstowe między rdzeniami mogą być jeszcze droższe niż inne przełączniki kontekstowe, ponieważ dane pamięci podręcznej nie są prawidłowe dla tego wątku na innym rdzeniu. Natomiast jeśli wątek jest przełączany kontekstowo na rdzeń, na który był wcześniej uruchomiony, prawdopodobnie przydatne dane są nadal w pamięci podręcznej. Gdy przełączniki kontekstowe między rdzeniami zostały zwiększone przez próby zarządzania koligacją wątków i wydajnością, należy rozważyć, czy rozwiązać ten problem. Zacznij od wyeliminowania koligacji wątków, a następnie obserwowania wynikowego zachowania między rdzeniami.

W poniższej tabeli opisano elementy legendy.

Element Definicja
Nazwa wątku Pokazuje kolor wątku na osi czasu poprzednich rdzeni i nazwę tego wątku.
Przełączniki kontekstowe między rdzeniami Liczba przełączników kontekstu dla wątku, który również przełączył się z jednego rdzenia logicznego na inny. Nie rozróżnia przełączników kontekstowych między rdzeniami, które przecinają się z jednego procesora, do innego niż te, które pozostają na tej samej kostki.
Łączna liczba przełączników kontekstu Całkowita liczba przełączników kontekstu dla danego wątku w okresie próbkowania. Za każdym razem, gdy wątek zmienia kontekst (na przykład od wykonania do synchronizacji), zlicza się jeden przełącznik kontekstu.
Procent przełączników kontekstu, które przecinają rdzenie Obliczone jako wartość procentowa przez podzielenie liczby przełączników kontekstowych między rdzeniami przez liczbę przełączników kontekstu całkowitej. Im większa ta wartość procentowa, tym większy ogólny wpływ narzut przełączników kontekstowych między rdzeniami na wydajność tego konkretnego wątku.

Oś czasu wyświetlania rdzeni

Każdy wiersz na osi czasu reprezentuje rdzeń procesora logicznego w profilowanym systemie. Dla każdego wiersza oś pozioma pokazuje, który wątek był uruchomiony na rdzeniu logicznym w danym punkcie w czasie. Możesz umieścić kursor na kolorze zainteresowania osią czasu, aby zwrócić etykietkę narzędzia identyfikującą wątek. Aby ułatwić identyfikację wątków, legenda w dolnej części okna pokazuje, co reprezentuje każdy kolor. Użyj narzędzia Zoom, aby powiększać i powiększać, klikając i przeciągając lub naciskając klawisze CTRL i przenosząc kółko myszy. Spójność powiększenia jest zachowywana podczas przełączania między widokami rdzeni i widokami wątków.

Rdzenie — wyświetlanie rdzeni logicznych

Każda nazwa kanału reprezentuje jeden z rdzeni logicznych, które istnieją w systemie profilowanym. Nazewnictwo jest liczone z zakresu od 0 do całkowitej liczby rdzeni logicznych. Na przykład czterordzeniowy system będzie liczyć z rdzenia logicznego 0 do rdzenia logicznego 3.

Narzędzie Do powiększania widoku rdzeni

Kontrolka Zoom to suwak, który umożliwia powiększanie i zmniejszanie osi czasu, dzięki czemu można skupić się na obszarach szczególnie interesujących. Ta kontrolka powiększa środek bieżącego widoku, więc dostosuj widok przed powiększeniem.

Inne sposoby powiększania

  • Powiększanie: przeciągnij, aby wybrać obszar w widoku osi czasu. Po zwolnieniu przycisku myszy widok osi czasu powiększa wybrany zakres.

  • Powiększanie i zmniejszanie: umieść kursor na osi czasu, a następnie naciśnij klawisze Ctrl podczas przenoszenia kółka myszy.