Udostępnij za pośrednictwem


Identyfikowanie ścieżek gorących za pomocą grafu płomieni (C#, Visual Basic, C++, F#)

Narzędzia profilowania programu Visual Studio na potrzeby wykorzystania procesora CPU i instrumentacji obejmują widok Flame Graph . Wykres płomienia pomaga zidentyfikować gorące ścieżki w kodzie, wyświetlając wizualizację drzewa wywołań. Ścieżka gorąca to stos wywołań dla funkcji korzystających z najwięcej procesora CPU lub najwięcej czasu i często jest dobrym miejscem do wyszukiwania potencjalnych optymalizacji wydajności. Wykres przedstawia wizualny przegląd miejsca, w którym jest poświęcany czas w aplikacji, i możesz kliknąć określone węzły, aby dokładniej je zagłębić.

Zrzut ekranu przedstawiający wykres płomieniowy z wyświetlonym menu kontekstowego.

Aby zapoznać się z samouczkiem pokazującym, jak poprawić wydajność przy użyciu grafu płomieni, zobacz Analiza przypadku: Przewodnik dla początkujących dotyczący optymalizowania kodu. Aby uzyskać informacje na temat profilera procesora CPU, zobacz Analizowanie wydajności przy użyciu profilowania procesora CPU.

Badanie gorących ścieżek

Widok Flame Graph znajduje się w widoku szczegółów raportu diagession .

  1. Rozpocznij sesję profilowania za pomocą narzędzia Użycie procesora CPU lub Instrumentacja.

  2. Po zatrzymaniu sesji profilowania i załadowaniu raportu wybierz pozycję Otwórz szczegóły.

    Zrzut ekranu przedstawiający wybraną pozycję Otwórz szczegóły.

  3. Wybierz pozycję Flame Graph (Wykres płomienia) w zaznaczeniu listy rozwijanej Bieżący widok.

    Zrzut ekranu przedstawiający wybrany widok Wykres płomienia.

    Zostanie wyświetlony widok Flame Graph.

    Zrzut ekranu przedstawiający wyświetlony przegląd programu Flame Graph.

    Ścieżka gorąca to ścieżka kodu używająca największej mocy procesora CPU lub najwięcej czasu podczas przeglądania drzewa wywołań w dół.

    Domyślnie dane wyświetlane w grafie płomienia reprezentują te same dane, co pokazane w widoku drzewa Wywołanie dla okresu zbierania danych. W szczególności w przypadku użycia procesora CPU jest wyświetlana łączna wartość procesora CPU . Ta wartość jest inkluzywna, więc obejmuje użycie procesora CPU (czyli czas obliczeń procesora CPU) używane przez wywołania funkcji i inne funkcje wywoływane przez funkcję. W ten sam sposób w przypadku instrumentacji wykres przedstawia wartości równoważne kolumnie Total (Suma ) w widoku drzewa wywołań.

    Jeśli jednak wybierzesz węzeł, wybrany węzeł stanie się nowym punktem odniesienia i używa 100% szerokości grafu płomienia. Dzięki temu można lepiej wizualizować złożone drzewo wywołań i wyświetlać długie nazwy po obcięciu lub ukryciu. Oto przykład wykresu płomienia, który pokazuje bardziej złożone drzewo wywołań.

    Zrzut ekranu przedstawiający wykres płomieniowy dla złożonego drzewa wywołań.

    Aby wyświetlić szczegółowe informacje o dowolnym węźle, wybierz węzeł.

    Wybierz pozycję Resetuj powiększenie , aby powrócić do widoku domyślnego.

    Możesz również przejść do różnych widoków w raporcie profilowania, wybierając węzeł, a następnie wybierając opcję taką jak Widok w drzewie wywołań z menu kontekstowego.

    Zrzut ekranu przedstawiający opcję Wykres płomienia do wyświetlenia w drzewie wywołań.

Przerzucanie wykresu płomienia

Domyślnie wykres płomienia w narzędziu jest wyświetlany do góry nogami lub jako wykres icicle, gdzie oś y zlicza głębokość stosu w dół od zera u góry.

Standardowy układ wykresu płomieniowego można wyświetlić, klikając pozycję Przerzuć wykres płomieniowy.

Zrzut ekranu przedstawiający zaznaczony wykres przerzucania płomienia.

W przypadku złożonego grafu płomienia można powiększyć wizualizację, wybierając określone elementy.

W widoku Wykres płomienia możesz nawigować, klikając węzeł za pomocą myszy lub za pomocą klawiatury. Ponadto obsługiwane są następujące skróty klawiaturowe.

Skrót klawiatury Polecenie
Tab Przejdź do dowolnego węzła
Strzałka w górę/w dół Przejdź do węzła nadrzędnego lub podrzędnego
Strzałka w prawo/w lewo Przejdź do elementu równorzędnego węzła na stosie
Enter Powiększ (wybierz)
Escape Pomniejsz