Instrumentieren einer nativen, eigenständigen Komponente und Sammeln von Zeitsteuerungsdaten über die Befehlszeile mit dem Profiler
In diesem Artikel wird beschrieben, wie eine native Komponente (beispielsweise eine .exe oder .dll-Datei in C++) mit den Visual Studio-Profilerstellungstools für die Befehlszeile instrumentiert wird und wie ausführliche Zeitsteuerungsdaten gesammelt werden.
Um ausführliche Zeitsteuerungsdaten aus einer Komponente mithilfe der Instrumentierungsmethode zu sammeln, generieren Sie mit dem Tool VSInstr.exe eine instrumentierte Version der Komponente. Starten Sie dann den Profiler. Wenn die instrumentierte Komponente ausgeführt wird, werden Zeitsteuerungsdaten automatisch in einer Datendatei erfasst. Sie können die Datensammlung während der Profilerstellungssitzung anhalten und fortsetzen.
Der Pfad zu den Profilerstellungstools lautet Microsoft Visual Studio\version\Enterprise\Team Tools\DiagnosticsHub\Collector.
Hinweis
Damit Sie die Profilerbefehlszeilentools verwenden können, müssen Sie den Pfad des Tools der PATH-Umgebungsvariable des Eingabeaufforderungsfensters oder dem Befehl selbst hinzufügen.
Um eine Profilerstellungssitzung zu beenden, schließen Sie die Zielanwendung, und schließen Sie danach den Profiler.
Starten der Profilerstellungssitzung
So starten Sie die Profilerstellung mit der Instrumentationsmethode:
Öffnen Sie ein Eingabeaufforderungsfenster.
Generieren Sie mit dem Tool VSInstr eine instrumentierte Version der Zielanwendung.
Starten Sie den Profiler. Typ:
VSPerfCmd /start:trace /output:
OutputFile
[Options
]Mit der Option /start:trace wird der Profiler initialisiert.
Die Option /output:
OutputFile
ist zusammen mit /start erforderlich. Mit demOutputFile
-Objekt werden Name und Speicherort der Profilerstellungs-Datendatei (VSP-Datei) angegeben.Sie können mindestens eine der folgenden Optionen zusammen mit der Option /start:trace verwenden.
Option Beschreibung /user:[ Domain
\]UserName
Gibt die Domäne und den Benutzernamen des Kontos an, das Besitzer des profilierten Prozesses ist. Diese Option ist nur erforderlich, wenn der Prozess als Benutzer ausgeführt wird, der nicht der angemeldete Benutzer ist. Der Prozessbesitzer ist auf der Registerkarte Prozesse in der Spalte Benutzername des Windows Task-Managers aufgeführt. /crosssession Aktiviert die Profilerstellung für Prozesse in anderen Sitzungen. Diese Option ist erforderlich, wenn die Anwendung in einer anderen Sitzung ausgeführt wird. Die Sitzungs-ID ist auf der Registerkarte Prozesse in der Spalte Sitzungs-ID des Windows Task-Managers aufgeführt. /CS kann als Abkürzung für /crosssession angegeben werden. /globaloff Startet den Profiler mit angehaltener Datensammlung. Mit/globalon setzen Sie die Profilerstellung fort. /counter: Config
Sammelt Informationen aus dem in Config
angegebenen Prozessorleistungsindikator. Informationen zu Leistungsindikatoren werden den Daten hinzugefügt, die bei jedem Profilerstellungsereignis gesammelt werden./wincounter: WinCounterPath
Gibt einen Windows-Leistungsindikator an, dessen Daten während der Profilerstellung gesammelt werden sollen. /automark: Interval
Verwenden Sie nur /wincounter. Gibt die Anzahl von Millisekunden zwischen Ereignissen bei der Datensammlung mit Windows-Leistungsindikatoren an. Der Standardwert ist 500 ms. /events: Config
Gibt ein ETW-Ereignis (Ereignisablaufverfolgung für Windows) an, dessen Daten während der Profilerstellung gesammelt werden sollen. ETW-Ereignisse werden in einer separaten Datei (ETL) gesammelt. Starten Sie die Zielanwendung auf die gewohnte Weise.
Steuern der Datensammlung
Während die Zielanwendung ausgeführt wird, können Sie die Datensammlung steuern, indem Sie das Schreiben von Daten in die Datei mit Optionen VSPerfCmd.exe starten und beenden. Durch das Steuern der Datensammlung können Sie Daten zu einem bestimmten Teil der Programmausführung sammeln, z. B. zum Starten oder Schließen der Anwendung.
So starten und beenden Sie die Datensammlung:
Mit den folgenden Optionspaaren wird die Datensammlung gestartet und beendet. Geben Sie jede Option in einer eigenen Befehlszeile an. Sie können die Datensammlung mehrmals aktivieren und deaktivieren.
Option Beschreibung /globalon /globaloff Die Datensammlung wird für alle Prozesse gestartet ( /globalon) oder beendet ( /globaloff). /processon: PID
/processoff:PID
Die Datensammlung wird für den mit der Prozess-ID () angegebenen Prozess gestartet ( /processon) oder beendet ( /processoff PID
)./threadon: TID
[/threadoff].. /profiling/threadon-and-threadoff.md) :TID
Die Datensammlung wird für den mit der Prozess-ID () angegebenen Prozess gestartet ( /threadon) oder beendet ( /threadoff TID
).
Beenden der Profilerstellungssitzung
Um eine Profilerstellungssitzung zu beenden, schließen Sie die Anwendung, die die instrumentierte Komponente ausführt, und rufen Sie dann die Option VSPerfCmd/shutdown auf, um den Profiler zu deaktivieren und die Profilerstellungs-Datendatei zu schließen.
So beenden Sie eine Profilerstellungssitzung:
Schließen Sie die Zielanwendung.
Schließen Sie den Profiler. Typ:
VSPerfCmd /shutdown
Zugehöriger Inhalt
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für