Instrumentowanie autonomicznego składnika natywnego i zbieranie danych o chronometrażu przy użyciu profilera z wiersza polecenia

W tym temacie opisano sposób używania narzędzi profilowania wiersza polecenia programu Visual Studio do instrumentowania składnika natywnego, takiego jak C++.exe lub .plik dll oraz zbieranie szczegółowych danych o chronometrażu.

Aby zebrać szczegółowe dane o chronometrażu ze składnika przy użyciu metody instrumentacji, należy użyć narzędzia VSInstr.exe do wygenerowania instrumentowanej wersji składnika. Następnie uruchom profilera. Po wykonaniu instrumentowanego składnika dane o chronometrażu są automatycznie zbierane do pliku danych. Zbieranie danych można wstrzymać i wznowić podczas sesji profilowania.

Ścieżka do narzędzi profilowania to Microsoft Visual Studio\version\Enterprise\Team Tools\DiagnosticsHub\Collector.

Uwaga

Aby użyć narzędzi wiersza polecenia profilera, należy dodać ścieżkę narzędzi do zmiennej środowiskowej PATH okna wiersza polecenia lub dodać ją do samego polecenia.

Aby zakończyć sesję profilowania, zamknij aplikację docelową, a następnie jawnie zamknij profilera.

Rozpoczynanie sesji profilowania

Aby rozpocząć profilowanie przy użyciu metody instrumentacji:

  1. Otwórz wiersz polecenia.

  2. Użyj narzędzia VSInstr, aby wygenerować instrumentowaną wersję aplikacji docelowej.

  3. Uruchom profilera. Typ:

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

    • Opcja /start:trace inicjuje profilera.

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

      Możesz użyć co najmniej jednej z następujących opcji z opcją /start:trace .

    Opcja Opis
    /user:[Domain\]UserName Określa domenę i nazwę użytkownika konta, które jest właścicielem profilowanego procesu. Ta opcja jest wymagana tylko wtedy, gdy proces jest uruchomiony jako użytkownik inny niż zalogowany użytkownik. Właściciel procesu znajduje się na liście w kolumnie Nazwa użytkownika na karcie Procesy Menedżera zadań systemu Windows.
    /crosssession Umożliwia profilowanie procesów w innych sesjach. Ta opcja jest wymagana, jeśli aplikacja jest uruchomiona w innej sesji. Identyfikator sesji znajduje się w kolumnie Identyfikator sesji na karcie Procesy Menedżera zadań systemu Windows. /CS można określić jako skrót / crosssession.
    /Globaloff Uruchamia profilera z wstrzymaną kolekcją danych. Użyj /globalon , aby wznowić profilowanie.
    /counter:Config Zbiera informacje z licznika wydajności procesora określonego w pliku Config. Informacje o liczniku są dodawane do danych zbieranych podczas każdego zdarzenia profilowania.
    /wincounter:WinCounterPath Określa licznik wydajności systemu Windows, który ma być zbierany podczas profilowania.
    /automark:Interval Użyj tylko 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 śledzenia zdarzeń systemu Windows (ETW) do zbierania podczas profilowania. Zdarzenia ETW są zbierane w osobnym (.plik etl).
  4. Uruchom aplikację docelową w typowy sposób.

Sterowanie zbieraniem danych

Gdy aplikacja docelowa jest uruchomiona, możesz kontrolować zbieranie danych, uruchamiając i zatrzymując zapisywanie danych w pliku przy użyciu opcji VSPerfCmd.exe . Kontrolowanie zbierania danych umożliwia zbieranie danych dla określonej części wykonywania programu, takich jak uruchamianie lub zamykanie aplikacji.

Aby rozpocząć i zatrzymać zbieranie danych:

  • Poniższe pary opcji uruchamiają i zatrzymują zbieranie danych. Określ każdą opcję w osobnym 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 zbieranie danych (/processoff) dla procesu określonego przez identyfikator procesu (PID).
    /threadon:TID [/threadoff].. /profiling/threadon-and-threadoff.md) :TID Uruchamia (/threadon) lub zatrzymuje zbieranie danych (/threadoff) dla wątku określonego przez identyfikator wątku (TID).

Kończ sesję profilowania

Aby zakończyć sesję profilowania, zamknij aplikację, która uruchamia instrumentowany składnik, a następnie wywołaj opcję VSPerfCmd/shutdown , aby wyłączyć profilera i zamknąć plik danych profilowania.

Aby zakończyć sesję profilowania:

  1. Zamknij aplikację docelową.

  2. Zamknij profilera. Typ:

    VSPerfCmd /shutdown