Udostępnij za pośrednictwem


Porady: instrumentacja dynamicznie skompilowanej aplikacji sieci Web ASP.NET 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 zbierania szczegółowych danych dotyczących alokacji pamięci .NET i okresu istnienia obiektów dla dynamicznie kompilowanych aplikacji sieci Web ASP.NET za pomocą metody profilowania instrumentacji.

[!UWAGA]

Narzędzia wiersza poleceń dla Profiling Tools znajdują się w podkatalogu \Team Tools\Performance Tools katalogu instalacyjnego Visual Studio.Na komputerach 64-bitowych dostępne są obie 32-bitowe i 64-bitowe wersje narzędzia.Aby użyć narzędzi profilowania z wiersza polecenia, należy dodać ścieżkę narzędzi do zmiennej środowiskowej PATH okna wiersza poleceń 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 zebrać dane wydajności z aplikacji sieci Web ASP.NET, zmodyfikuj plik web.config aplikacji docelowej, aby umożliwić narzędziu VSInstr.exe instrumentację dynamicznie kompilowanych plików aplikacji.Następnie użyj narzędzia VSPerfCLREnv.cmd aby skonfigurować serwer obsługujący aplikację sieci Web ASP.NET i włączyć profilowanie pamięci .NET przez ustawienie odpowiednich zmiennych środowiskowych i uruchom ponownie komputer.

W celu zbierania danych, uruchom program profilujący, a następnie uruchom aplikację docelową.Gdy profiler jest dołączony do aplikacji, można wstrzymywać i wznawiać zbieranie danych. Gdy odpowiednie dane zostały zebrane, zamknij aplikację, zamknij proces roboczy Internet Information Services (IIS) i następnie zamknij program profilujący.

Po zakończeniu pracy profilowania, przywróć plik web.config i serwer sieci Web do oryginalnego stanu.

Konfigurowanie aplikacji sieci Web ASP.NET i serwera sieci Web

Aby skonfigurować aplikację sieci Web ASP.NET i serwer sieci Web

  1. Zmodyfikuj plik web.config dla docelowej aplikacji.Zobacz Porady: modyfikowanie plików Web.Config w celu instrumentowania i profilowania dynamicznie skompilowanych aplikacji sieci ASP.NET.

  2. Otwórz okno wiersza polecenia na komputerze, który obsługuje aplikację sieci Web.

  3. Zainicjuj zmienne środowiskowe profilowania.Wpisz:

    VSPerfClrEnv /globaltracegc

    -lub-

    VSPerfClrEnv /globaltracegclife

    • /globaltracegc umożliwia zbieranie danych alokacji pamięci.

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

  4. Uruchom ponownie komputer.

Uruchamianie sesji profilowania

Aby profilować aplikację sieci Web ASP.NET

  1. Uruchom profiler.Wpisz:

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

    • Opcja /start:trace inicjuje profiler.

    • Opcja **/output:**OutputFile, jest wymagana z /start.OutputFile określa nazwę i lokalizację pliku danych profilowania (.vsp).

    Można użyć dowolnej z następujących opcji z opcją /start:trace.

    [!UWAGA]

    Opcje /user i /crosssession są zazwyczaj wymagane dla aplikacji ASP.NET.

    Opcja

    Opis

    /user:[Domain\]UserName

    Określa opcjonalną domenę i nazwę użytkownika dla konta, 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.Nazwa jest wyświetlana w kolumnie Nazwa użytkownika, na karcie Procesy, w Menedżerze zadań Windows.

    /crosssession

    Włącza profilowanie procesów w innych sesjach.Ta opcja jest wymagana, jeśli aplikacja 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ślony jako skrót dla /crosssession.

    /globaloff

    Uruchamia profiler ze wstrzymanym zbieraniem danych.Użyj /globalon aby wznowić profilowanie.

    /counter:Config

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

    /wincounter:WinCounterPath

    Określa licznik wydajności systemu Windows, który ma być zbierany podczas profilowania.

    /automark:Interval

    Należy używać wyłącznie z /wincounter.Określa liczbę milisekund między zdarzeniami zbierania liczników wydajności systemu Windows.Wartość domyślna to 500 ms.

    /events:Config

    Określa zdarzenie Śledzenie zdarzeń systemu Windows (ETW), które ma być zbierane podczas profilowania.Zdarzenia ETW są gromadzone w oddzielnym pliku (.etl).

  2. Uruchom aplikację sieci Web ASP.NET w typowy sposób.

Kontrolowanie zbierania danych

Podczas uruchomienia aplikacji docelowej, można kontrolować zbieranie danych przez uruchamianie i zatrzymywanie zapisywania danych do pliku z danymi profilera przy użyciu 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 uruchamiają i zatrzymują zbieranie danych.Określ każdą opcję w oddzielnym wierszu polecenia.Zbieranie danych można włączać i wyłączać wiele razy.

    Opcja

    Opis

    /globalon /globaloff

    Uruchamia (/globalon) lub zatrzymuje zbieranie danych (/globaloff) 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).

  • Można również użyć opcji VSPerfCmd.exe/mark aby wstawić znacznik programu profilującego do pliku danych.Polecenie /mark dodaje identyfikator, sygnaturę czasową i opcjonalny tekst zdefiniowany przez użytkownika.Znaczniki mogą być używane do filtrowania danych w raportach programu profilującego i widokach danych.

Kończenie sesji profilowania

Aby zakończyć sesję profilowania, zamknij docelową aplikację sieci Web ASP.NET, zatrzymaj Internet Information Services (IIS), aby zatrzymać profilowany proces, a następnie zamknij program profilujący.Następnie uruchom ponownie usługi IIS.

Aby zakończyć sesję profilowania

  1. Zamknij aplikację sieci Web ASP.NET.

  2. Zamknij proces roboczy ASP.NET, resetując Internet Information Services (IIS).Wpisz:

    IISReset /stop

  3. Zamknij profiler.Wpisz:

    VSPerfCmd/shutdown

  4. Uruchom ponownie IIS.Wpisz:

    IISReset /start

Przywracanie konfiguracji aplikacji i komputera

Po zakończeniu wszystkich zadań profilowania, zamień plik web.config, wyczyść zmienne środowiskowe profilowania i uruchom ponownie komputer, aby przywrócić serwer i aplikację ASP.NET do ich oryginalnych stanów.

Aby przywrócić konfigurację aplikacji i komputera

  1. Zamień plik web.config z kopią oryginalnego pliku.

  2. (Opcjonalnie).Wyczyść zmienne środowiskowe profilowania.Wpisz:

    VSPerfCmd /globaloff

  3. Uruchom ponownie komputer.

Zobacz też

Koncepcje

Profilowanie wiersza polecenia aplikacji sieci Web ASP.NET

Inne zasoby

Widoki danych pamięci profilera .NET