Udostępnij za pośrednictwem


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

W tym temacie opisano, w jaki sposób użyć narzędzi wiersza polecenia Profiling Tools Visual Studio, aby dołączyć profiler do usługi .NET Framework i zbierać dane o użyciu pamięci.Możesz zbierać dane o liczbie i rozmiarze alokacji pamięci oraz o okresie istnienia obiektów w pamięci.

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

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.

Aby zbierać dane o pamięci z usługi .NET Framework, użyj narzędzia VSPerfCLREnv.cmd, aby zainicjować odpowiedne zmienne środowiskowe na komputerze hostującym usługę.Aby skonfigurować komputer do profilowania, należy uruchomić go ponownie.

Następnie należy użyć narzędzia VSPerfCmd, aby dołączyć profiler do procesu usługi.Gdy profiler jest dołączony do usługi, można wstrzymywać i wznawiać zbieranie danych.

Aby zakończyć sesję profilowania, należy odłączyć profiler od usługi, a następnie jawnie zamknąć profiler.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

  1. Jeśli to konieczne, zainstaluj usługę.

  2. Otwórz okno wiersza polecenia.

  3. Inicjowanie zmiennych środowiskowych profilowania.Typ:

    VSPerfClrEnv {/globalsamplegc /globalsamplegclife}[/samplelineoff]

    • Opcje /globalsamplegclife i /globalsamplegclife określają typ zbierania danych pamięci.Określ jedną i tylko jedną z następujących opcji.
    • /globalsamplegc
      Umożliwia zbieranie danych alokacji pamięci.

    • /globalsamplegclife
      Umożliwia zbieranie danych alokacji pamięci i danych o okresie istnienia obiektów.

    • Opcja /samplelineoff wyłącza zbieranie danych o numerze linii w kodzie źródłowym.
  4. Uruchom ponownie komputer, aby ustawić nową konfigurację środowiska.

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

  6. Otwórz okno wiersza polecenia.Jeśli to konieczne, dodaj ścieżkę profilera do zmiennej środowiskowej PATH.

  7. 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żna użyć jednej lub więcej z następujących opcji wraz z opcją /start:sample.

    [!UWAGA]

    Opcje /user i /crosssession są zazwyczaj wymagane dla usług.

    Opcja

    Opis

    /user:[Domain]\]UserName

    Określa domenę i nazwę użytkownika konta, które jest właścicielem procesu.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.

    /user:[Domain]\]UserName

    Określa opcjonalną domenę i nazwę użytkownika konta logowania, pod którym działa usługa.Konto logowania jest wypisane w kolumnie "Zaloguj jako" usługi w Menedżerze kontroli usług systemu Windows.

    /crosssession|cs

    Włącza profilowanie procesów w innych sesjach logowania.

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

    /events: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. Dołącz profiler do usługi.Typ:

    VSPerfCmd /attach:{PID|ProcName} [/targetclr**:**Version]

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

    • **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 usługa jest uruchomiona, możesz użyć opcji VSPerfCmd.exe, aby zatrzymać lub uruchomić zapisywanie danych do pliku danych profilera.Sterowanie zbieraniem 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).

    /attach:{PID|ProcName} /detach[:{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 nie został określony konkretny proces.

Kończenie sesji profilowania

Aby zakończyć sesję profilowania, profiler nie może zbierać danych.Możesz zatrzymać zbieranie danych z aplikacji profilowanej metodą próbkowania przez zatrzymanie usługi lub wywołanie opcji VSPerfCmd /detach.Następnie należy wywołać 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

  1. Wykonaj jedną z następujących czynności, aby odłączyć profiler z aplikacji docelowej:

    • Zatrzymaj usługę.

      -lub-

    • Typ VSPerfCmd /detach

  2. Zamknij program Profiler.Typ:

    VSPerfCmd /shutdown

  3. (Opcjonalne) Wyczyść zmienne środowiskowe profilowania.Typ:

    VSPerfClrEnv /globaloff

  4. Uruchom ponownie komputer.

Zobacz też

Koncepcje

Profilowanie wiersza polecenia usług

Inne zasoby

Widoki danych pamięci profilera .NET