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:

  1. Öffnen Sie ein Eingabeaufforderungsfenster.

  2. Generieren Sie mit dem Tool VSInstr eine instrumentierte Version der Zielanwendung.

  3. 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 dem OutputFile-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.
  4. 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 ( /processoffPID).
    /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 ( /threadoffTID).

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:

  1. Schließen Sie die Zielanwendung.

  2. Schließen Sie den Profiler. Typ:

    VSPerfCmd /shutdown