Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Program Visual Studio udostępnia różne narzędzia profilowania, które ułatwiają diagnozowanie różnych rodzajów problemów z wydajnością aplikacji w zależności od typu aplikacji. W tym artykule przedstawiono informacje ułatwiające znalezienie odpowiedniego narzędzia dla danego scenariusza i typu aplikacji.
Aby zapoznać się z ogólnym podejściem do optymalizacji kodu przy użyciu narzędzi profilowania, zobacz Analiza przypadku: Przewodnik dla początkujących dotyczący optymalizowania kodu.
Którego narzędzia należy użyć?
W poniższej tabeli wymieniono różne narzędzia dostępne w programie Visual Studio i przedstawiono typowe scenariusze wyboru narzędzia.
| Narzędzie wydajności | Opis | Kiedy używać narzędzia? |
|---|---|---|
| użycie procesora CPU | Pokazuje, gdzie procesor spędza czas. | • Rozpocznij badanie ogólnych problemów z wydajnością. • Badanie wysokiego użycia procesora CPU serwera. • Zbadaj scenariusze DevOps, takie jak wtedy, gdy zamówienia nie przechodzą do witryny internetowej sklepu detalicznego. • Optymalizowanie użycia procesora CPU. • Badanie opóźnienia w wywołaniach interfejsu API. |
| graf płomienia | ** Wyświetl w narzędziu Użycie procesora, które dostarcza alternatywną wizualizację drzewa wywołań. | Badanie opóźnienia w wywołaniach interfejsu API |
| gorąca ścieżka | Wyświetl w narzędziu Użycie procesora, które pokazuje, gdzie spędzono większość czasu procesora w Twojej aplikacji. | Badanie opóźnienia w wywołaniach interfejsu API |
| użycie pamięci | Wyświetla pamięć aplikacji w celu znalezienia problemów, takich jak przecieki pamięci. | • Optymalizowanie użycia pamięci • Badanie zablokowania interfejsu użytkownika • Badanie podejrzanego przecieku pamięci (kodu natywnego) |
| alokacja obiektów .NET | Pokazuje, gdzie są przydzielane obiekty platformy .NET oraz informacje na temat zarządzania pamięcią. | • Optymalizowanie użycia pamięci platformy .NET • Analizowanie odzyskiwania pamięci |
| Instrumentacja | Pokazuje dokładne liczby wywołań i czasy połączeń. | • Potrzebujesz narzędzia, takiego jak użycie procesora CPU, ale potrzebujesz dokładnych liczb wywołań i czasu spędzonego w funkcjach na podstawie czasu zegara ściany. • Chcesz zobaczyć zablokowany czas, na przykład czas oczekiwania na blokady. • Uwaga: to narzędzie wymaga dodatkowych obciążeń. |
| Liczniki .NET | Raport na żywo dla liczników platformy .NET. | • Rozpocznij badanie ogólnych problemów z wydajnością. • Chcesz śledzić metryki oparte na licznikach platformy .NET, takie jak wyjątki na sekundę, zbiór odpadów i wykorzystanie CPU. |
| BenchmarkDotNet | Raport dotyczący testów porównawczych opartych na benchmarkDotNet. | • Otrzymuj różne wizualizacje danych zebranych przy użyciu BenchmarkDotNet, takich jak użycie CPU lub alokacje pamięci, w zależności od używanego diagnozatora. |
| I/O pliku | Pokazuje operacje we/wy plików oraz czas ich przetwarzania i ilość przetwarzanych danych. | Zbadaj zamrożenie interfejsu użytkownika |
| Wskazówki dotyczące wydajności | Przedstawia szybki pomiar informacji o wydajności podczas interakcji z kodem. | Podczas debugowania chcesz zobaczyć czas, który upłynął między poprzednią operacją kroku (lub punktem przerwania) do bieżącego kroku lub punktu przerwania. |
| Podgląd zdarzeń | Pokazuje żądania HTTP, komunikaty dziennika i wyjątki. | • Badanie opóźnienia wywołań interfejsu API • Badanie powolnego działania aplikacji na zdalnym serwerze internetowym |
| Asynchronizuj platformę .NET | Pokazuje użycie async/await w aplikacjach .NET. | Zbadaj podejrzany problem z wydajnością z kodem asynchronicznym. |
| Baza danych | Pokazuje wydajność zapytań bazy danych. | Zbadaj wydajność zapytań bazy danych, które używają ADO.NET lub Entity Framework Core. |
| użycie procesora GPU | Przedstawia ogólne użycie sprzętu aplikacji Direct3D. | Sprawdź, czy wydajność aplikacji jest powiązana z procesorem CPU, czy powiązana z procesorem GPU. |
| Harmonogram aplikacji | Pokazuje wydajność interfejsu użytkownika dla aplikacji XAML. | Zbadaj wydajność interfejsu użytkownika w aplikacjach XAML, takich jak czas spędzony na renderowaniu ramek. |
| IntelliTrace | Narzędzie debugera umożliwiające rejestrowanie zdarzeń i badanie stanu aplikacji w różnych punktach wykonywania. | Chcesz, aby narzędzie badało stan aplikacji w różnych punktach, a nie tylko bieżący stan aplikacji. |
Które narzędzia są obsługiwane dla mojego projektu?
W poniższej tabeli wymieniono różne narzędzia dostępne w programie Visual Studio oraz różne typy projektów, których można używać z:
| Narzędzie wydajności | .NET | C/C++ | platforma UWP | ASP.NET/ASP.NET Core |
|---|---|---|---|---|
| użycie procesora CPU | tak | tak | tak | tak |
| użycie pamięci | tak | tak | tak | tak |
| alokacja obiektów .NET | tak | Nie | tak | tak |
| Instrumentacja | tak | tak | tak | tak |
| Liczniki .NET | Tak (tylko platforma .NET Core/5 lub nowsza) | Nie | Nie | Tak (tylko ASP.NET Core) |
| BenchmarkDotNet | tak | Nie | Nie | częściowo |
| I/O pliku | tak | tak | tak | tak |
| Wskazówki dotyczące wydajności | tak | tak | tak | tak |
| Podgląd zdarzeń | tak | tak | tak | tak |
| Asynchronizuj platformę .NET | tak | Nie | tak | tak |
| Baza danych | Tak (tylko platforma .NET Core/5 lub nowsza) | Nie | Nie | Tak (tylko ASP.NET Core) |
| użycie procesora GPU | tak | tak | tak | Nie |
| Harmonogram aplikacji | Tak (XAML) | Nie | tak | Nie |
| Eksplorator wydajności | Nie | Nie | Nie | Nie |
| IntelliTrace | Tylko .NET z programem Visual Studio Enterprise | Nie | Tylko .NET z programem Visual Studio Enterprise | Tylko .NET z programem Visual Studio Enterprise |
Obsługa projektów CMake jest taka sama jak C++. W przypadku użycia procesora CPU, użycia pamięci, operacji wejścia/wyjścia plików i podglądu zdarzeń można uruchamiać narzędzia profilowania względem projektu startowego. Jednak w przypadku instrumentacji i użycia procesora GPU należy ustawić plik wykonywalny jako element docelowy w profilerze wydajności (Alt + F2), wybierając pozycję Wykonywalny jako projekt startowy.
Obsługa projektów CMake jest taka sama jak C++. Należy jednak ustawić plik wykonywalny jako element docelowy w profilerze wydajności (Alt + F2), wybierając pozycję Wykonywalny jako projekt startowy.
Które narzędzia są obsługiwane w systemie Linux?
Następujące narzędzia są obsługiwane przez system Linux lub WSL jako platformę docelową, a także system Windows:
- Użycie procesora CPU
- Śledzenie alokacji obiektów platformy .NET
- .NET Async
- Liczniki platformy .NET
- BenchmarkDotNet
- Podgląd zdarzeń
- Baza danych
Dowiedz się, jak używać profilatorów
Poniższe artykuły i wpisy w blogu zawierają więcej informacji, aby ułatwić efektywne korzystanie z narzędzi do wydajności programu Visual Studio.
- Analiza przypadku: Przewodnik dla początkujących dotyczący optymalizowania kodu
- Analiza przypadku: Izolowanie problemu z wydajnością
- poprawianie wydajności programu Visual Studio przy użyciu nowego narzędzia Instrumentation Tool
- Analiza przypadku: podwójna wydajność w czasie poniżej 30 minut
Powiązana zawartość
- przewodnik po funkcji profilowania
- Uruchamianie narzędzi profilowania w kompilacjach wydania lub debugowania