Share via


Instrumentieren einer eigenständigen .NET Framework-Komponente und Sammeln von Zeitsteuerungsdaten über die Befehlszeile mit dem Profiler

In diesem Artikel wird beschrieben, wie die zu den Visual Studio gehörenden Befehlszeilentools für Profilerstellung zum Instrumentieren einer .NET Framework-Komponente (z.B. eine .exe oder .dll-Datei) verwendet und ausführliche Zeiterfassungsdaten gesammelt werden.

Hinweis

Informationen zu .NET Core und .NET 5+ finden Sie unter Messen der Anwendungsleistung über die Befehlszeile für Befehlszeileninstrumentierungsszenarien. VSInstr wird für .NET Core- und .NET 5+-Binärdateien nicht unterstützt. Ab Visual Studio 2022 Version 17.6 wird empfohlen, VSDiagnostics.exe auch für .NET Framework-Szenarien zu verwenden, da es dynamische Instrumentierung bietet.

Wenn Sie ausführliche Zeitdaten eines .NET Frameworks mit der Instrumentierungsmethode erfassen möchten, verwenden Sie das Tool VSInstr.exe, um eine instrumentierte Version der Komponente und des VSPerfCLREnv.cmd-Tools zu generieren und Umgebungsvariablen für die Profilerstellung zu initialisieren. Starten Sie dann den Profiler.

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.

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.

Um eine Profilerstellungssitzung zu beenden, schließen Sie die Zielanwendung, und schließen Sie danach den Profiler. In den meisten Fällen empfiehlt es sich, die Umgebungsvariablen für die Profilerstellung am Ende einer Sitzung zu entfernen.

Starten der Profilerstellungssitzung

So starten Sie die Profilerstellung mit der Instrumentationsmethode:

  1. Öffnen Sie ein Eingabeaufforderungsfenster. Fügen Sie der PATH-Umgebungsvariable das Profiler-Toolsverzeichnis falls notwendig hinzu. Der Pfad wird bei der Installation nicht hinzugefügt.

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

  3. Initialisieren Sie die .NET Framework-Umgebungsvariablen für die Profilerstellung. Typ:

    VSPerfClrEnv /traceon

  4. 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 jede 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 ASP.NET-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.
  5. Starten Sie die Zielanwendung über das Eingabeaufforderungsfenster.

Steuern der Datensammlung

Wenn die Zielanwendung ausgeführt wird, können Sie die Datensammlung steuern, indem Sie das Schreiben von Daten in die Profiler-Datendatei 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: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. Rufen Sie die Option VSPerfCmd/shutdown auf, um den Profiler zu deaktivieren und die Profilerstellungs-Datendatei zu schließen. Mit dem Befehl VSPerfClrEnv /off werden die Umgebungsvariablen für die Profilerstellung gelöscht.

So beenden Sie eine Profilerstellungssitzung:

  1. Schließen Sie die Zielanwendung.

  2. Schließen Sie den Profiler. Typ:

    VSPerfCmd /shutdown

  3. (Optional) Löschen Sie die Umgebungsvariablen für die Profilerstellung. Typ:

    VSPerfClrEnv /off