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 do wykorzystania procesora CPU i instrumentacji obejmują widok Flame Graph. Flame Graph ułatwia identyfikowanie gorących ścieżek w kodzie przez wyświetlenie wizualizacji drzewa wywołań. Ścieżka gorąca to stos wywołań dla funkcji korzystających z największej ilości procesora lub czasu, a często jest dobrym miejscem do szukania 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 jest dostępny w szczegółowym widoku raportu .diagession.

  1. Rozpocznij sesję profilowania za pomocą narzędzia Użycia CPU lub narzędzia Instrumentacji.

  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ę Graf płomienia na rozwijanej liście o nazwie Bieżący widok.

    Zrzut ekranu z wybranym widokiem wykresu płomieniowego.

    Zostanie wyświetlony widok Flame Graph.

    zrzut ekranu przedstawiający przegląd wykresu płomieniowego.

    Ś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łań dla okresu zbierania danych. Dla wykorzystania CPU wyświetla wartości całkowitego użycia 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ę. Podobnie jak w przypadku Instrumentation, wykres przedstawia wartości odpowiadające kolumnie Total 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 wykresu płomienia. Dzięki temu można lepiej wizualizować złożone drzewo wywołań i wyświetlać długie nazwy, gdy są skrócone lub ukryte. Oto przykład flame graphu, który przedstawia 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 Resetuj powiększenie, aby przywrócić widok domyślny.

    Możesz także nawigować pomiędzy różnymi widokami w raporcie profilowania, wybierając węzeł, a następnie wybierając opcję z menu kontekstowego, taką jak Widok w drzewie wywołań.

    Zrzut ekranu przedstawiający opcję Flame Graph do wyświetlenia w drzewie wywołań.

Odwróć wykres płomienia

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

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

Zrzut ekranu przedstawiający zaznaczony Wykres Płomieni (flip).

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 klawiszowy Polecenie
Zakładka 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 równorzędnego węzła na stosie
Wejść Powiększ (wybierz)
Ucieczka Pomniejszanie