Porady: dołączanie profilera do usługi .NET w celu zbierania statystyk aplikacji przy użyciu wiersza polecenia
W tym temacie opisano, jak używać Visual Studio narzędzia profilowania narzędzi wiersza polecenia, aby dołączyć profiler do.NET Framework usługi i zebrać statystyki wydajności przy użyciu metody pobierania próbek.
[!UWAGA]
Ulepszone funkcje zabezpieczeń w systemach Windows 8 i Windows Server 2012 wymagają znaczących zmian w sposobie, w jaki program Profiler środowiska Visual Studio zbiera dane na tych platformach.Aplikacje Windows Store również wymagają nowych technik zbierania.Zobacz Profilowanie aplikacji Windows 8 i Windows Server 2012.
Narzędzia wiersza poleceń dla Narzędzi profilowania znajdują się w podkatalogu \Team Tools\Performance Tools katalogu instalacyjnego Visual Studio.Na komputerach 64-bitowych dostępne są obie, 32-bitowa i 64-bitowa wersja narzędzia.Aby użyć narzędzi profilowania z wiersza polecenia, należy dodać ścieżkę narzędzi do zmiennej środowiskowej PATH okna wiersza polecenia lub dodać do niej samo polecenie.Aby uzyskać więcej informacji, zobacz Określanie ścieżki do narzędzi wiersza polecenia narzędzi profilowania.
Dodawanie danych interakcji do profilowania uruchomi szczególne procedury z wiersza polecenia narzędzia profilowania.Zobacz Dodawanie danych o interakcji między warstwami za pośrednictwem wiersza polecenia.
Aby zebrać dane dotyczące wydajności z usługi.NET Framework, należy użyć VSPerfCLREnv.cmd narzędzie, aby zainicjować zmienne środowiskowe właściwe.Następnie należy ponownie uruchomić komputer, który obsługuje usługę i skonfigurować tego komputera do profilowania.Następnie dołączyć profiler do procesu usługi.Gdy profiler jest dołączony do usługi, można wstrzymywać i wznawiać zbierania danych.
Aby zakończyć sesję profilowania, profiler musi zostać odłączony od usługi i profiler musi być jawnie wyłączony.W większości przypadków na końcu sesji zaleca się wyczyszczenie zmiennych środowiskowych profilowania.
Dołączanie programu Profiler
Aby dołączyć Profiler do usługi .NET Framework
Zainstaluj usługę.
Otwórz okno wiersza polecenia.
Inicjowanie zmiennych środowiskowych profilowania.Typ:
VSPerfClrEnv /globalsampleon [/samplelineoff]
/globalsampleon umożliwia pobieranie próbek.
/samplelineoff wyłącza przypisanie zebranych danych do określonego źródła wierszy kodu.Jeśli opcja ta została określona, dane są przypisane tylko do funkcji.
Uruchom ponownie komputer.
Otwórz okno wiersza polecenia.
Uruchom program Profiler.Typ:
VSPerfCmd /start:sample /output**:**OutputFile[Options]
Opcja /start:sample inicjuje profiler.
Opcja **/output:**OutputFile, jest wymagana z /start.OutputFile określa nazwę i lokalizację pliku danych profilowania (vsp).
Możesz użyć dowolnej z następujących opcji z opcją /start:sample.
[!UWAGA]
Opcje /user i /crosssession są zazwyczaj wymagane dla usług.
Opcja
Opis
/user:[Domain]\]UserName
Określa nazwę domeny i użytkownika konta, który jest właścicielem profilowanego procesu.Ta opcja jest wymagana tylko jeśli proces działa jako użytkownik inny niż zalogowany użytkownik.Właściciel procesu jest wymieniony w kolumnie Nazwa użytkownika na karcie Procesy Menedżera zadań Windows.
Włącza profilowanie procesów w innych sesjach.Ta opcja jest wymagana, jeśli usługa jest uruchomiona w innej sesji.Identyfikator sesji jest wyświetlany w kolumnie Identyfikator sesji, na karcie Procesy w Menedżerze zadań Windows./CS może być określona jako skrót dla /crosssession.
/wincounter:WinCounterPath
Określa licznik wydajności systemu Windows, który ma zbierać dane podczas profilowania.
/automark:Interval
Używaj wyłącznie z /wincounter.Określa liczbę milisekund między zdarzeniami zbierania licznika wydajności systemu Windows.Wartość domyślna to 500ms.
/zdarzenia:Config
Określa zdarzenie śledzenia zdarzeń systemu Windows (ETW), które mają być zbierane podczas profilowania.Zdarzenia ETW są zbierane w oddzielnym pliku (.etl).
Jeśli to konieczne, uruchom usługę.
Dołącz profiler do usługi.Typ:
VSPerfCmd /attach: {PID|ProcName} [Sample Event] [/targetclr**:**Version]
- Określ identyfikator procesu (PID) lub nazwa procesu (Nazwa_procedury) usługi.W Menedżerze zadań systemu Windows można wyświetlić identyfikatory i nazwy wszystkich uruchomionych procesów.
Domyślnie dane dotyczące wydajności są próbkowane co 10 000 000 niewstrzymanych cykli zegara procesora.Jest to około 100 próbek na sekundę na procesorze 1GH.Można określić jedną z następujących opcji, aby zmienić interwał cyklu zegara lub określić inne zdarzenie próbkowania.
Zdarzenia przykładowe
Opis
/timer:Interval
Zmienia liczbę cykle zegarowe zatrzymany określony przez interwał próbkowania Interval.
/pf[:Interval]
Zamienia zdarzenie próbkowania na błędy stron.Jeśli Interval jest określony, ustawia liczbę błędów stron pomiędzy próbkami.Domyślnie jest to 10.
/sys[:Interval]
Zamienia zdarzenie próbkowania na wywołania systemowe z procesu do jądra systemu operacyjnego (syscalls).Jeśli Interval jest określony, ustawia liczbę wywołań pomiędzy próbkami.Domyślnie jest to 10.
/licznik:Config
Zmiany poboru i interwał licznika wydajności procesora i przedziału określonego w Config.
- **targetclr:**Version określa wersję środowiska wykonawczego języka wspólnego (CLR) do profilowania, gdy więcej niż jedna wersja środowiska wykonawczego jest załadowana w aplikacji.Opcjonalnie.
Kontrolowanie zbierania danych
Gdy uruchomiona jest usługa, opcje VSPerfCmd.exe umożliwiają uruchamianie i zatrzymywanie zapisu danych do pliku danych programu profilującego.Kontrolowanie zbierania danych umożliwia zbieranie danych dla określonej części wykonywania programu, takiej jak uruchamianie lub zamykanie aplikacji.
Aby uruchomić i zatrzymać zbieranie danych
Następujące pary opcji VSPerfCmd uruchamiają i zatrzymują zbieranie danych.Określ każdą opcję w oddzielnym wierszu poleceń.Zbieranie danych można wielokrotnie włączać i wyłączać.
Opcja
Opis
Uruchamia (/globalon) lub zatrzymuje (/globaloff) zbieranie danych dla wszystkich procesów.
/processon:PID/processoff:PID
Uruchamia (/processon) lub zatrzymuje (/processoff) zbieranie danych dla procesu określonego przez identyfikator procesu (PID).
/attach:{PID|ProcName} /odłącz[:{PID|ProcName}]
/attach uruchamia zbieranie danych dla procesu określonego przez identyfikator procesu lub nazwę procesu./detach zatrzymuje zbieranie danych dla określonego procesu lub dla wszystkich procesów, jeśli konkretny proces nie jest określony.
Kończenie sesji profilowania
Aby zakończyć sesję profilowania, profiler musi zostać odłączony od wszystkich procesów PROFILOWANEGO i profiler musi być jawnie wyłączony.Można odłączyć od aplikacji profilowane z metodą pobierania próbek przez zamknięcie aplikacji lub wywołując VSPerfCmd /detach opcji.Następnie wywołujesz opcję VSPerfCmd /shutdown, aby wyłączyć profiler i zamknąć plik danych profilowania.
Polecenie VSPerfClrEnv /globaloff usuwa zmienne środowiskowe profilowania, ale konfiguracja systemu nie jest resetowana do ponownego uruchomienia komputera.
Aby zakończyć sesję profilowania
Wykonaj jedną z następujących czynności, aby odłączyć profiler z aplikacji docelowej:
Zatrzymaj usługę.
-lub-
Typ VSPerfCmd /detach
Zamknij program Profiler.Typ:
VSPerfCmd /shutdown
(Opcjonalne) Wyczyść zmienne środowiskowe profilowania.Typ:
VSPerfClrEnv /globaloff
Uruchom ponownie komputer.
Zobacz też
Koncepcje
Profilowanie wiersza polecenia usług