Instruktaż: Za pomocą interfejsów API programu Profiler
Instruktaż używa aplikacji w języku C# aby pokazać, jak używać Visual Studio Profiling Tools APIs.Użyte zostaną API profilera aby ograniczyć ilość danych, zebranych podczas instrumentowanego profilowania.
Kroki opisane w tym instruktażu generalnie stosuje się do aplikacji w języku C i C++.Dla każdego języka należy odpowiednio skonfigurować środowisko kompilacji.
Zazwyczaj można zacząć analizować wydajność aplikacji przy użyciu profilowania przez próbkowanie.Jeśli profilowanie przez próbkowanie nie dostarcza informacji, które określaj a wąskie gardło, profilowanie za pomocą instrumentacji może zapewnić większy poziom szczegółowości.Profilowanie za pomocą instrumentacji jest bardzo przydatne dla badania interakcji wątków.
Jednak większy poziom szczegółowości oznacza zbieranie większej ilości danych.Może się okazać, że profilowanie za pomocą instrumentacji tworzy duże pliki danych.Ponadto instrumentacja może mieć większy wpływ na wydajność aplikacji.Aby uzyskać więcej informacji, zobacz Opis narzędzia profilowania wartości danych Instrumentacji i Opis pobierania próbek wartości danych w narzędzia profilowania.
Visual Studio profiler umożliwia ograniczenie zbierania danych.Instruktaż ten oferuje przykład, jak ograniczyć zbieranie danych przy użyciu interfejsów API profilera.Profiler Visual Studio dostarcza interfejs API do sterowania zbieraniem danych z poziomu aplikacji.
Dla kodu natywnego, interfejsy API profilera Visual Studio są w VSPerf.dll.Plik nagłówka, VSPerf.h i biblioteka importu VSPerf.lib, znajdują się w katalogu Microsoft Visual Studio 9\Team Tools\Performance Tools.
Dla kodu zarządzanego, interfejsy API profilera są w Microsoft.VisualStudio.Profiler.dll.Ta biblioteka DLL znajduje się w katalogu Microsoft Visual Studio 9\Team Tools\Performance Tools.Aby uzyskać więcej informacji, zobacz Microsoft.VisualStudio.Profiler.
Wymagania wstępne
Instruktaż ten zakłada, że wybór środowiska programowania jest skonfigurowany do obsługi debugowania i próbkowania.Przegląd wymagań wstępnych można znaleźć w następujących tematach:
Jak: Symbol Windows informacje
Domyślnie podczas uruchamiania profilera, zbiera on dane na poziomie globalnym.Następujący kod na początku programu wyłącza profilowanie globalne.
DataCollection.StopProfile(
ProfileLevel.Global,
DataCollection.CurrentId);
Zbieranie danych w wierszu polecenia można wyłączyć bez użycia wywołania API.Następujące kroki zakładają, że wbudowane środowisko wiersza polecenia jest skonfigurowane do uruchamiania narzędzia profilowania i narzędzi rozwoju.Obejmuje to ustawienia niezbędne do VSInstr i VSPerfCmd.Zobacz Command-Line Profiling Tools.
Ograniczanie zbierania danych przy użyciu interfejsów API profilera
Aby utworzyć kod do profilowania
Należy utworzyć nowy projekt C# w Visual Studio lub użyć kompilacji z wiersza polecenia, zgodnie z własnymi preferencjami.
[!UWAGA]
Kompilacja musi odwoływać się biblioteki Microsoft.VisualStudio.Profiler.dll, znajdującej się w katalogu Microsoft Visual Studio 9\Team Tools\Performance Tools.
Skopiuj i wklej następujący kod do projektu:
using System; using System.Collections.Generic; using System.Text; using Microsoft.VisualStudio.Profiler; namespace ConsoleApplication2 { class Program { public class A { private int _x; public A(int x) { _x = x; } public int DoNotProfileThis() { return _x * _x; } public int OnlyProfileThis() { return _x + _x; } public static void Main() { DataCollection.StopProfile( ProfileLevel.Global, DataCollection.CurrentId); A a; a = new A(2); int x; Console.WriteLine("2 square is {0}", a.DoNotProfileThis()); DataCollection.StartProfile( ProfileLevel.Global, DataCollection.CurrentId); x = a.OnlyProfileThis(); DataCollection.StopProfile( ProfileLevel.Global, DataCollection.CurrentId); Console.WriteLine("2 doubled is {0}", x); } } } }
Aby zebrać i wyświetlić dane w programie Visual Studio IDE
Otwórz Visual Studio IDE.W menu Analizuj wskaż Profiler, a następnie wybierz Nowa sesja wydajności.
Dodaj skompilowany plik binarny do listy Cele w oknie Eksplorator wydajności.Kliknij prawym przyciskiem myszy Cele, a następnie wybierz Dodaj docelowy plik binarny.Zlokalizuj plik binarny w oknie dialogowym Dodaj docelowy plik binarny, a następnie kliknij Otwórz.
Wybierz Instrumentacja z listy Metody na pasku narzędzy Eksplorator wydajności.
Kliknij Uruchom profilowanie.
Profiler będzie instrumentował i wykonywał plik binarny i utworzy plik raportu wydajności.Plik raportu wydajności pojawi się w węźle Sprawozdania Eksploratora wydajności.
Otwórz plik wynikowy raportu wydajności.
Domyślnie podczas uruchamiania profilera, zbierze on dane na poziomie globalnym.Następujący kod na początku programu wyłącza profilowanie globalne.
DataCollection.StopProfile(
ProfileLevel.Global,
DataCollection.CurrentId);
Aby zebrać i wyświetlić dane w wierszu polecenia
Skompiluj wersję debugowania kodu przykładowego, utworzonego w procedurze "Tworzenie kodu do profilowania" wcześniej w tym instruktażu.
Abyprofilować zarządzaną aplikację, wpisz następujące polecenie, aby ustawić zmienne środowiskowe:
VsPefCLREnv /traceon
Wpisz następujące polecenie:VSInstr <filename>.exe
Wpisz następujące polecenie:VSPerfCmd /start:trace /output:<filename>.vsp
Wpisz następujące polecenie:VSPerfCmd /globaloff
Wykonaj program.
Wpisz następujące polecenie:VSPerfCmd /shutdown
Wpisz następujące polecenie:VSPerfReport /calltrace:<filename>.vsp
Plik .csv jest tworzony w katalogu bieżącym z wynikowymi danymi dotyczącymi wydajności.
Zobacz też
Informacje
Microsoft.VisualStudio.Profiler
Koncepcje
Wprowadzenie do narzędzia profilowania
Przy użyciu profilowania narzędzia z wiersza polecenia
Inne zasoby
Visual Studio Profiler API Reference (w trybie macierzystym)