Udostępnij przez


Wybieranie spośród profilera wydajności programu Visual Studio, zestawu narzędzi Windows Performance Toolkit i narzędzia PerfView

Ten przewodnik zawiera ogólne porównanie podstawowych technologii profilowania wydajności ogólnego przeznaczenia w firmie Microsoft: Visual Studio Performance Profiler, Windows Performance Toolkit i PerfView.

Te narzędzia mogą ułatwić diagnozowanie i zrozumienie cech wydajności aplikacji w systemie Windows. Celem tego przewodnika jest przedstawienie informacji o tym, kiedy używać ich nawzajem, podkreślając każdą z ich mocnych stron i oferując krótkie omówienie funkcji, które zawierają.

Przegląd

Profiler wydajności programu Visual Studio jest tworzony przez zespół programu Visual Studio, aby szybko zrozumieć charakterystykę wydajności aplikacji opracowywanej w istniejącym systemie projektów programu Visual Studio. Jego siła jest ściśle zintegrowana z aktywnym projektem projektowym, upraszczając analizę najbardziej typowych scenariuszy wydajności i szybką, łatwą kolekcję tylko jednej aplikacji.

Zestaw narzędzi Windows Performance Toolkit jest tworzony przez zespół systemu Windows w celu zrozumienia szerokich cech całego komputera jednocześnie. Chociaż dorastał od konieczności analizowania sprzętu i sterowników, jest bardzo skuteczny w zrozumieniu problemów z oprogramowaniem. Jego siła polega na zbieraniu dużych ilości informacji z całej maszyny jednocześnie, więc problemy z wieloma procesami, te, które mają do czynienia ze sprzętem lub sterownikami, i złożone scenariusze są dobrze dopasowane do tych narzędzi.

Narzędzie PerfView jest tworzone przez zespół platformy .NET w celu zrozumienia wydajności aplikacji platformy .NET. Podobnie jak zestaw narzędzi Windows Performance Toolkit, może zbierać duże ilości informacji z całej maszyny jednocześnie. Wyróżnia ją możliwość wyświetlania bardzo szczegółowych informacji o usługach środowiska uruchomieniowego platformy .NET, takich jak kolekcja śmieci, kompilacja just in time i zarządzana pula wątków. Narzędzie PerfView może być używane w przypadku aplikacji zarządzanych, natywnych i mieszanych.

Te narzędzia nakładają się na siebie. Często możesz rozpocząć eksplorowanie problemu w jednym narzędziu i przełączyć się do innego widoku tego samego scenariusza. Innym razem jeden z narzędzi będzie bardziej skuteczny niż inne.

Instalacja

Profiler wydajności programu Visual Studio jest składnikiem samego programu Visual Studio i można go zainstalować za pośrednictwem tego samego kreatora instalacji , co reszta środowiska programistycznego.

Zestaw narzędzi Windows Performance Toolkit można pobrać oddzielnie w ramach zestawu Windows Assessment and Deployment Kit. Jednak narzędzie wiersza polecenia Narzędzie Performance Recorder jest wstępnie zainstalowane z systemami Windows 10 i Windows 11 jako wpr.exe dostępne w domyślnej zmiennej ścieżki z powłok, takich jak Program PowerShell i wiersz polecenia.

Analizator wydajności jest dostępny jako aplikacja w sklepie Microsoft Store.

Program PerfView jest dostępny do samodzielnego pobrania na stronie Wydania usługi GitHub PerfView. Instalacja nie jest wymagana.

Dostosowywanie pod kątem zaawansowanych scenariuszy analizy wydajności

Zestaw narzędzi Windows Performance Toolkit oferuje ponadto dwa punkty rozszerzalności, które mogą obsługiwać zaawansowane scenariusze analizy wydajności.

  • Zestaw MICROSOFT Performance Toolkit SDK obsługuje przetwarzanie danych śledzenia i umożliwia deweloperom tworzenie własnych wtyczek do wyświetlania w analizatorze wydajności systemu Windows.
  • Funkcja .NET TraceProcessing umożliwia tworzenie niestandardowych narzędzi, które mogą przetwarzać informacje śledzenia w tabelach wynikowych i jest szczególnie przydatne w przypadku zautomatyzowanej analizy danych śledzenia zbiorczego.

Narzędzie PerfView jest oparte na bibliotece .NET TraceEvent, służącej do programowej analizy śladów wydajności. Narzędzie TraceEvent może być używane niezależnie od elementu PerfView do przeprowadzania niestandardowej analizy danych śledzenia wydajności.

Uwaga / Notatka

Aby scenariusze analizy wydajności działały, musisz mieć dostęp do symboli skorelowanych z testowanej aplikacji systemu Windows. Podczas kompilowania przy użyciu programu Visual Studio będą one znajdować się tak samo jak w ustawieniach scenariusza debugowania , skompilowanych przy użyciu rozwiązania lub przechwyconych z serwerów symboli. Podczas analizowania innych bibliotek lub składników należy zlokalizować symbole dla tych składników w celu ukończenia analizy.

Zagadnienia dotyczące wybierania narzędzia

Wybrane narzędzie zależy od scenariusza wydajności, który próbujesz zbadać. Porównanie funkcji i cech między narzędziami znajduje się w poniższej tabeli, w której:

  • Dobrze obsługiwane oznacza, że narzędzie jest przeznaczone do zamierzonego zadania i osiąga niezawodne i szczegółowe wyniki.
  • Obsługiwane oznacza, że narzędzie może wymagać dodatkowej konfiguracji lub kroków w celu uzyskania pożądanych wyników. Może zawierać ograniczony zakres działania w ramach kategorii.
  • Nieobsługiwane oznacza, że narzędzie nie jest przeznaczone do tego użycia.

Wskazówka

Aby uzyskać ogólną regułę, zacznij od profilowania programu Visual Studio, gdy jest to możliwe. Przejdź do Windows Performance Toolkit lub PerfView, gdy możliwości narzędzi Visual Studio zostaną wyczerpane.

Sytuacja Profiler wydajności programu Visual Studio Narzędzie do monitorowania wydajności systemu Windows Widok wydajności
Zagadnienia dotyczące ogólnego użycia
Rozmiar pliku śledzenia Dobrze obsługiwane Wspierane Wspierane
Pozyskiwanie narzędzi Dobrze obsługiwane Dobrze obsługiwane Dobrze obsługiwane
Zestawy do rozszerzania Niewspierane Dobrze obsługiwane Dobrze obsługiwane
Zakres zagadnień dotyczących pracy
Pojedynczy proces lub projekt Dobrze obsługiwane Wspierane Wspierane
Wiele procesów Niewspierane Dobrze obsługiwane Dobrze obsługiwane
Zagadnienia dotyczące sprzętu
Użycie procesora Dobrze obsługiwane Dobrze obsługiwane Dobrze obsługiwane
Użycie procesora GPU Dobrze obsługiwane Dobrze obsługiwane Niewspierane
Użycie pamięci Dobrze obsługiwane Dobrze obsługiwane Dobrze obsługiwane
Dane wejściowe/wyjściowe urządzenia Niewspierane Dobrze obsługiwane Dobrze obsługiwane
Użycie zasilania Niewspierane Dobrze obsługiwane Niewspierane
Uchwyty systemowe Niewspierane Dobrze obsługiwane Dobrze obsługiwane
Zagadnienia dotyczące obsługi języka kodu
Obsługa języka C/C++ Dobrze obsługiwane Dobrze obsługiwane Dobrze obsługiwane
Obsługa platformy .NET Dobrze obsługiwane Dobrze obsługiwane Dobrze obsługiwane
Obsługa języka JavaScript Wspierane Wspierane Wspierane
Zagadnienia dotyczące scenariusza
Śledzenie zdarzeń dla systemu Windows Wspierane Dobrze obsługiwane Dobrze obsługiwane
Kompozycja Niewspierane Dobrze obsługiwane Niewspierane
HTML/Edge/Internet Explorer/Webview Niewspierane Dobrze obsługiwane Niewspierane
XAML/WinUI Wspierane Dobrze obsługiwane Dobrze obsługiwane
ścieżki audio/wideo i zakłócenia Niewspierane Dobrze obsługiwane Niewspierane
Chronometraż bazy danych Dobrze obsługiwane Niewspierane Niewspierane
Alokacja zarządzanych obiektów i zbieranie śmieci Dobrze obsługiwane Niewspierane Dobrze obsługiwane
Scenariusze niestandardowe Niewspierane Dobrze obsługiwane Dobrze obsługiwane

Zagadnienia dotyczące ogólnego użycia

W przypadku osób, które dopiero zaczynają pracę z analizą wydajności, zalecamy program Visual Studio Performance Profiler jako dobrze zintegrowaną funkcję w istniejącym pakiecie deweloperów programu Visual Studio. Zalecamy używanie programu Visual Studio Performance Profiler za pośrednictwem narzędzia PerfView, jeśli spełnia Twoje potrzeby.

Aby uzyskać bardziej złożoną analizę wydajności systemu, która może wymagać większej mocy i wszechstronności, zalecamy zestaw narzędzi Windows Performance Toolkit, który składa się z dwóch narzędzi używanych do wykonywania zadań analizy wydajności:

  • Narzędzie Windows Performance Recorder, dostępne zarówno jako narzędzie wiersza polecenia, jak i z interfejsem graficznym, jest odpowiedzialne za przechwytywanie sesji śledzenia.
  • Analizator wydajności systemu Windows zostanie otwarty później, aby po przetworzeniu zebranych danych i udostępnić wysoce dostosowywalny widok analizy.

Oto kilka korzyści oferowanych przez program Visual Studio Performance Profiler:

  • dobre wprowadzenie do analizy wydajności w głównych domenach.
  • obsługuje wiele złożoności analizy i debugowania automatycznie na podstawie konfiguracji projektu.
  • automatycznie podkreśla główne obszary budzące niepokój.
  • Jest lepiej skupić się tylko na jednej aplikacji, z mniejszym, bardziej skoncentrowanym zestawem danych i mniejszym zakresem kolekcji.
  • Bardziej szczegółowy nacisk przekłada się na mniejszy wpływ na inne aplikacje i sprzęt maszynowy podczas profilowania, zmniejszony całkowity rozmiar plików śledzenia generowanych i przechowywanych, a zwiększoną szybkość przetwarzania na potrzeby przeglądania informacji po zakończeniu zbierania.
  • Zajmuje mniej czasu na rozpoczęcie i ukończenie śledzenia, z możliwością szybszego przeglądania i reakcji, ponieważ Visual Studio Performance Profiler skupia się tylko na aplikacji, a nie na całym systemie.
  • Zbieranie danych i analiza wynikowa są całościowo wykonywane w programie Visual Studio, a uruchamianie stron analizy następuje automatycznie po zakończeniu zbierania danych. Widok raportu również automatycznie skupia uwagę na punktach aktywnych lub obszarach akcji.

Oto kilka korzyści oferowanych przez zestaw narzędzi Windows Performance Toolkit:

  • Obszerna dokumentacja i blogi są udostępniane przez zespoły ds. wydajności i diagnostyki systemu Windows, aby ułatwić rozpoczęcie pracy.
  • Jest lepiej zbierać bardzo duże pliki, zwłaszcza z systemów, które są zajęte zadaniami w tle. To jest wszechstronne narzędzie do zbierania informacji, które następnie będą filtrowane później w interfejsie Analizatora wydajności systemu Windows.
  • Możliwość dostosowywania do zaawansowanych scenariuszy analizy wydajności przy użyciu punktów rozszerzalności. (Zobacz poniżej)

Oto kilka korzyści oferowanych przez program PerfView:

  • Kompleksowa wbudowana dokumentacja i dostępne z Internetu filmy wideo połączone z poziomu aplikacji.
  • łatwo można wdrożyć w środowiskach produkcyjnych, kopiując PerfView.exe.
  • tryb rejestratora lotów do przechwytywania problemów trudnych do zidentyfikowania.
  • Bardzo szczegółowa diagnostyka usług środowiska uruchomieniowego platformy .NET.
  • Rozszerzalny dla widoków niestandardowych.

Zakres zagadnień dotyczących pracy

W przypadku analiz dotyczących pojedynczej aplikacji, a zwłaszcza pojedynczego procesu, wszystkie narzędzia doskonale nadają się do zbierania i analizowania wydajności. Zaletą jest jednak użycie profilera wydajności programu Visual Studio, zwłaszcza gdy źródło aplikacji i system projektu jest już dostępny. Silnik profilera wydajności programu Visual Studio jest przeznaczony do zbierania informacji o CPU, GPU i pamięci z pliku binarnego w podobnie usprawniony sposób jak możliwość debugowania F5. Chociaż skupia się tylko na jednej aplikacji, ten mechanizm zbierania oferuje szybszą realizację i bardziej wydajny cykl rozwoju.

Wybierz pozycję PerfView, jeśli program Visual Studio nie ma niezbędnych możliwości, nie można go uruchomić ze względu na wymagania dotyczące kolekcji (typowe w środowiskach produkcyjnych) lub wymagane są bardziej szczegółowe możliwości diagnostyczne platformy .NET.

W sytuacjach z większą złożonością, które obejmują wiele żądań międzyprocesowych, urządzenia sprzętowe i ich sterowniki lub szczegółowe analizy technologii platformy Windows, zestaw narzędzi Windows Performance Toolkit jest optymalnym wyborem.

Zagadnienia dotyczące sprzętu

Profiler wydajności programu Visual Studio, Zestaw narzędzi Windows Performance Toolkit i PerfView mogą diagnozować procesor CPU i pamięć dla głównych składników sprzętowych, a program Visual Studio Performance Profiler i zestaw narzędzi Windows Performance Toolkit dodatkowo obsługują procesor GPU. Narzędzia są ogólnie dobrze dopasowane do początkowej analizy w tych obszarach.

Użycie procesora można analizować za pomocą wszystkich trzech narzędzi i zwykle opisuje się poprzez próbkowanie. Próbkowanie okresowo przechwytuje ślady stosu z aplikacji i udostępnia ranking dotyczący częstotliwości ich występowania. Oba narzędzia mogą dostosować to zachowanie, aby zamiast tego używać instrumentacji na potrzeby dokładnej księgowości.

Użycie GPU można analizować za pomocą Profilera Wydajności programu Visual Studio i Zestawu Narzędzi Windows Performance Toolkit, aby uzyskać ogólny przegląd informacji.

Wykorzystanie pamięci można analizować za pomocą wszystkich z trzech narzędzi, które zbierają informacje o przestrzeni sterty i stosach skojarzonych z alokacjami w stercie.

W przypadku wystąpienia bardziej złożonych scenariuszy, takich jak analizowanie sieci, dysku, urządzeń, dojść lub ogólnego zużycia energii systemu, zestaw narzędzi Windows Performance Toolkit jest bardziej wyposażony w obsługę analizy. Te dane najlepiej zbierać bezpośrednio z systemu operacyjnego, ponieważ wysyła żądania do różnych składników sprzętowych. Zestaw narzędzi Windows Performance Toolkit jest opracowywany razem z systemem operacyjnym, więc jest gotowy i zdolny do zbierania tych bardziej skoncentrowanych na systemie kategorii informacji.

Zagadnienia dotyczące obsługi języka kodu

Zestaw narzędzi Windows Performance Toolkit koncentruje się głównie na obsłudze języków C i C++, ponieważ te języki są używane w bazie kodu systemu operacyjnego Windows.

Obsługa profilera wydajności programu Visual Studio koncentruje się na szerszym zakresie języków programowania, począwszy od technologii pochodzących z platformy .NET, takich jak C# i ASP.NET, a następnie rozszerza się na zewnątrz.

Aplikacja PerfView obsługuje aplikacje platformy .NET i natywne (C i C++). Ma dogłębną wiedzę na temat środowisk uruchomieniowych platformy .NET i możliwości związanych z obsługą aplikacji internetowych ASP.NET.

Nie oznacza to, że program Visual Studio nie może analizować kodu C lub C++ lub że Analizator wydajności systemu Windows nie może analizować aplikacji platformy .NET lub że narzędzie PerfView nie może analizować aplikacji internetowych. Najlepiej jest zacząć od narzędzia, które najlepiej pasuje do analizowanej aplikacji, aby wykorzystać zalety poszczególnych narzędzi.

Zagadnienia dotyczące scenariusza

Wszystkie narzędzia zawierają kilka opcji opartych na scenariuszach na potrzeby badania wydajności aplikacji.

Opcje profilera wydajności programu Visual Studio zwykle koncentrują się na platformie .NET, interfejsie użytkownika i bazach danych znajdujących się w analizowanej aplikacji.

Zestaw narzędzi Windows Performance Toolkit zwykle koncentruje się na składnikach i strukturach systemu operacyjnego, takich jak kompozycji, widoki przeglądarki i błędy w potokach przetwarzania w czasie rzeczywistym.

W przypadku scenariuszy wymagających bardziej dostosowanego rozwiązania program Windows Performance Recorder może łączyć zarówno kolekcję w całym systemie, jak i dane zbierania aplikacji w jedną sesję rejestrowania. Ta funkcja umożliwia deweloperowi aplikacji oferowanie kompletnego rozwiązania do wdrożenia klientom w celu żądania danych wydajności od sprzętu, który może się różnić od tego, który został użyty do opracowania produktu. Więcej informacji na temat tego mechanizmu można znaleźć w serii blogów Tworzenie Profilów Niestandardowych zespołu systemu Windows ds. wydajności i diagnostyki.

Narzędzie PerfView jest przeznaczone do głębokich badań aplikacji i środowisk uruchomieniowych platformy .NET, ale jest tak samo możliwe w badaniach wieloprocesowych i na poziomie systemu operacyjnego.

Podsumowanie

Profiler wydajności programu Visual Studio, Windows Performance Toolkit i PerfView to trzy niezawodne narzędzia firmy Microsoft, które umożliwiają zrozumienie wydajności aplikacji. Wybranie narzędzia najlepiej spełniającego Twoje potrzeby wymaga różnych zagadnień dotyczących konkretnej sytuacji. Mamy nadzieję, że ten przewodnik dostarczy informacje potrzebne do dokonania mądrych wyborów analizy wydajności. Zachęcamy również do przesyłania opinii na tej stronie poniżej. W przypadku problemów dotyczących wydajności programowania systemu Windows, prosimy zgłosić problem w repozytorium Windows Dev Performance.