Udostępnij za pośrednictwem


Porady: instrumentacja usługi .NET Framework i zbieranie danych pamięci przy użyciu wiersza polecenia profilera

W tym temacie opisano, jak używać narzędzi wiersza polecenia Profiling Tools Visual Studio do instrumentacji usługi .NET Framework i zbierania danych o użyciu pamięci.Możesz zbierać dane alokacji pamięci lub zbierać zarówno dane o alokacji pamięci jak i dane o okresie istnienia obiektów.

[!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.

[!UWAGA]

Nie można profilować usługi za pomocą metody instrumentacji, jeśli usługa nie może być uruchomiona ponownie po uruchomieniu komputera. Przykładem może być usługa, która jest uruchamiana podczas uruchamiania systemu operacyjnego.

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.

Rozpoczynanie sesji profilowania

Aby zebrać dane o wydajności dla usługi .NET Framework należy użyć narzędzia VSPerfCLREnv.cmd do inicjowania odpowiednich zmiennych środowiskowych i narzędzia VSInstr.exe do utworzenia instrumentowanej kopii pliku binarnego usługi.

Należy ponownie uruchomić komputer, na którym działa usługa, w celu konfiguracji do profilowania.Musisz uruchomić usługę ręcznie z Menedżera kontroli usług.Następnie uruchamiasz profiler i usługę .NET Framework.

Podczas wykonywania instrumentowanego składnika, dane pamięci zbierane są automatycznie do pliku danych.Możesz wstrzymywać i wznawiać zbieranie danych podczas sesji profilowania.

Aby zakończyć sesję profilowania zamknij usługę i jawnie zamknij profiler.W większości przypadków na końcu sesji zaleca się wyczyszczenie zmiennych środowiskowych profilowania.

Aby rozpocząć profilowanie usługi .NET Framework

  1. Otwórz okno wiersza polecenia.

  2. Użyj narzędzia VSInstr do generowania instrumentowanej wersji pliku binarnego usługi.

  3. Użyj Menedżera kontroli usług, aby zastąpić oryginalny plik binarny wersją instrumentowaną.Upewnij się, że usługa Typ uruchomienia jest ustawiona na wartość Ręcznie.

  4. Inicjowanie zmiennych środowiskowych profilowania.Typ:

    VSPerfClrEnv {/globaltracegc | /globaltracegclife}

    • /globaltracegc i /globaltracegclife umożliwia zbieranie danych alokacji pamięci i danych o okresie istnienia obiektów.

      Opcja

      Opis

      /globaltracegc

      Zbiera tylko dane alokacji pamięci.

      /globaltracegclife

      Zbiera dane alokacji pamięci i okresu istnienia obiektu.

  5. Uruchom ponownie komputer.

  6. Otwórz okno wiersza polecenia.

  7. Uruchom program Profiler.Typ:

    VSPerfCmd /start:trace /output**:**OutputFile [Options]

    • Opcja /start: contention 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 konto użytkownika, które jest właścicielem procesu roboczego ASP.NET.Ta opcja jest wymagana, 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.

    /crosssession

    Włącza profilowanie procesów w innych sesjach logowania.Ta opcja jest wymagana, jeśli aplikacja ASP.NET 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.

    /waitstart[:Interval]

    Określa liczbę sekund oczekiwania na zainicjowanie programu Profiler, zanim zostanie zwrócony błąd.Jeśli Interval nie jest określony, program Profiler oczekuje w nieskończoność.Domyślnie, niezwłocznie zostaje zwrócony /start.

    /globaloff

    Aby rozpocząć wstrzymane zbieranie danych przez profiler należy dodać opcję /globaloff do wiersza polecenia /start.Użyj /globalon aby wznowić profilowanie.

    /licznik:Config

    Zbiera informacje od licznika wydajności procesora, określone w Konfiguracji.Informacje licznika są dodawane do zebranych danych, podczas każdego zdarzenia profilowania.

    /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 500 ms.

    /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).

  8. Jeśli to konieczne, uruchom usługę.

  9. Dołącz profiler do usługi.Typ:

    **VSPerfCmd /attach:**PID|ProcessName

    • Określ identyfikator procesu lub nazwę procesu usługi.W Menedżerze zadań systemu Windows można wyświetlić identyfikatory i nazwy wszystkich uruchomionych procesów.

Kontrolowanie zbierania danych

Gdy uruchomiona jest usługa, można kontrolować zbieranie danych przez uruchamianie i zatrzymywanie zapisywania danych do pliku za pomocą opcji VSPerfCmd.exe.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

    /globalon /globaloff

    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).

    /threadon:TID/threadoff:TID

    Uruchamia (/threadon) lub zatrzymuje (/threadoff) zbieranie danych dla wątku określonego przez identyfikator wątku (TID).

Kończenie sesji profilowania

Aby zakończyć sesję profilowania, zamknij aplikację na której działa składnik instrumentowany, a następnie uruchom opcję VSPerfCmd /shutdown, aby wyłączyć profiler i zamknąć plik danych profilowania.Polecenie VSPerfClrEnv /globaloff czyści zmienne środowiskowe profilowania.

Aby zakończyć sesję profilowania

  1. Zatrzymaj usługę z Menedżera sterowania usługami.

  2. Zamknij program Profiler.Typ:

    VSPerfCmd /shutdown

  3. Po zakończeniu wszystkich zadań profilowania, wyczyść zmienne środowiskowe profilowania.Typ:

    VSPerfClrEnv /globaloff

    Zastąp moduł instrumentowany jego oryginałem.Jeśli to konieczne, ponownie skonfiguruj Typ uruchomienia usługi.

  4. Uruchom ponownie komputer.

Zobacz też

Koncepcje

Profilowanie wiersza polecenia usług

Inne zasoby

Widoki danych pamięci profilera .NET