Porady: dołączanie profilera do usługi natywnej i zbieranie danych współbieżności przy użyciu wiersza polecenia
W tym temacie opisano, jak używać narzędzi wiersza poleceń Visual Studio Narzędzi profilujących do dołączenia programu profilującego do macierzystej (C/C++) usługi i zbierania danych współbieżności procesu i wątku, 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.
[!UWAGA]
Narzędzia wiersza polecenia narzędzia profilowania znajdują się w podkatalogu narzędzia \Team Tools\Performance z katalogu instalacyjnego programu Visual Studio.Na komputerach 64-bitowych dostępne są obie, 32-bitowa i 64-bitowa wersja narzędzia.Aby użyć programu profilującego w wierszu polecenia, należy dodać ścieżkę narzędzi do zmiennej środowiskowej PATH okna Wiersz polecenia lub dodać ją do samego polecenia.Aby uzyskać więcej informacji, zobacz Określanie ścieżki do narzędzi wiersza polecenia narzędzi profilowania.
Gdy profiler jest dołączony do usługi, można wstrzymywać i wznawiać zbieranie danych.Aby zakończyć sesję profilowania, program profilujący nie może być już dołączony do usługi i musi być jawnie zamknięty.
Dołączanie programu Profiler
Aby dołączyć program profilujący do macierzystej usługi, należy użyć opcji VSPerfCmd/start i /attach do zainicjowania programu profilującego i dołączenia go do aplikacji docelowej.Możesz określić /start i /attach oraz ich odpowiednie opcje dla pojedynczego wiersza polecenia.Możesz również dodać opcję /globaloff, aby wstrzymać zbieranie danych przy uruchomieniu aplikacji docelowej.Następnie należy użyć /globalon do rozpoczęcia zbierania danych.
Aby dołączyć program profilujący do macierzystej usługi
Jeśli usługa nie jest uruchomiona, uruchom ją.
Rozpocznij program profilujący, wpisując następujące polecenie w wierszu polecenia:
VSPerfCmd/start:concurrency **/output:**OutputFile [Options]
- Opcja /output**:**OutputFile jest wymagana z /start.OutputFile określa nazwę i lokalizację pliku danych profilowania (.vsp).
Możesz użyć dowolnej opcji z poniższej tabeli z opcją /start .
[!UWAGA]
Większość usług wymaga opcji /user i /crosssession.
Opcja
Opis
/user:[Domain\]UserName
Określa opcjonalną domenę i nazwę użytkownika konta, aby uzyskać dostęp do programu profilującego.
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.
/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).
Dołącz program profilujący do usługi, wpisując następujące polecenie w wierszu polecenia:
**VSPerfCmd /attach:**PID
PID określa identyfikator procesu lub nazwę procesu aplikacji docelowej.W Menedżerze zadań systemu Windows można wyświetlić identyfikatory i nazwy wszystkich uruchomionych procesów.
Kontrolowanie zbierania danych
Gdy jest uruchomiona aplikacja docelowa, można kontrolować zbieranie danych przez uruchamianie i zatrzymywanie zapisywania danych do pliku za pomocą opcji VSPerfCmd.exe.Przez kontrolowanie zbierania danych, można zbierać dane dla określonej części wykonywania programu, takiej jak uruchamianie lub zamykanie aplikacji.
Aby uruchomić i zatrzymać zbieranie danych
Pary opcji w poniższej tabeli 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 uruchamia zbieranie danych dla procesu określonego przez identyfikator procesu (PID) lub nazwę procesu (ProcName)./detach zatrzymuje zbieranie danych dla określonego procesu lub dla wszystkich procesów, jeśli żaden proces nie jest określony.
Kończenie sesji profilowania
Aby zakończyć sesję profilowania, profiler nie może zbierać danych.Można zatrzymać zbieranie danych z macierzystej usługi, która jest profilowana metodą współbieżności, przez zatrzymanie usługi lub wywołując opcję VSPerfCmd /detach.Następnie wywołujesz opcję VSPerfCmd /shutdown, aby wyłączyć profiler i zamknąć plik danych profilowania.
Aby zakończyć sesję profilowania
Odłącz program profilujący od docelowej aplikacji przez zatrzymanie usługi lub wpisanie następującego polecenia w wierszu polecenia:
Typ VSPerfCmd /detach
Zamknij program profilujący, wpisując następujące polecenie w wierszu polecenia:
VSPerfCmd /shutdown