Gewusst wie: Instrumentieren einer statisch kompilierten ASP.NET-Webanwendung und Sammeln von Speicherdaten über die Profiler-Befehlszeile
In diesem Thema wird beschrieben, wie die Befehlszeilentools der Visual Studio-Profilerstellungstools verwendet werden, um eine vorkompilierte ASP.NET-Webkomponente oder -Website zu instrumentieren und Daten zur .NET-Speicherbelegung und zur Objektlebensdauer sowie ausführliche Zeitsteuerungsdaten zu sammeln.
Tipp
Die Befehlszeilentools der Profilerstellungstools befinden sich im Unterverzeichnis "\Team Tools\Performance Tools" des Visual Studio-Installationsverzeichnisses. Auf 64-Bit-Computern sind 64-Bit- und 32-Bit-Versionen der Tools verfügbar. Um die Profiler-Befehlszeilentools zu verwenden, müssen Sie den Toolpfad der PATH-Umgebungsvariable des Eingabeaufforderungsfensters oder dem Befehl selbst hinzufügen. Weitere Informationen finden Sie unter Angeben des Pfads zu den Profilerstellungstools für die Befehlszeile.
Um Daten aus einer ASP.NET-Webkomponente mithilfe der Instrumentationsmethode zu erfassen, generieren Sie mit dem Tool VSInstr.exe eine instrumentierte Version der Komponente. Auf dem Computer, der die Komponente hostet, müssen Sie die nicht instrumentierte Version der Komponente durch die instrumentierte Version ersetzen. Sie verwenden das VSPerfCLREnv.cmd-Tool, um die globalen Umgebungsvariablen für die Profilerstellung zu initialisieren und dann den Hostcomputer neu zu starten. 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.
Wenn Sie eine Profilerstellungssitzung beenden möchten, müssen Sie den ASP.NET-Arbeitsprozess schließen, der die Komponente hostet, und dann den Profiler explizit beenden. In den meisten Fällen empfiehlt es sich, die Umgebungsvariablen für die Profilerstellung am Ende einer Sitzung zu entfernen.
Starten der Profilerstellung
So instrumentieren Sie eine ASP.NET-Webkomponente und starten die Profilerstellung
Generieren Sie mit dem VSInstr-Tool eine instrumentierte Version der Zielanwendung. Ersetzen Sie die Anwendungsbinärdateien auf dem ASP.NET-Hostcomputer falls notwendig durch die instrumentierten Binärdateien.
Öffnen Sie ein Eingabeaufforderungsfenster.
Initialisieren Sie die .NET-Umgebungsvariablen für die Profilerstellung. Geben Sie im Eingabeaufforderungsfenster Folgendes ein:
VSPerfClrEnv /globaltracegc
– oder –
VSPerfClrEnv /globaltracegclife
/globaltracegc sammelt Daten zur .NET-Speicherbelegung sowie zur Zeitsteuerung.
/globaltracegclife sammelt Daten zur .NET-Speicherbelegung, Objektlebensdauer sowie ausführliche Zeitsteuerungsdaten.
Starten Sie den Computer neu.
Öffnen Sie ein Eingabeaufforderungsfenster.
Starten Sie den Profiler. Geben Sie im Eingabeaufforderungsfenster Folgendes ein:
VSPerfCmd /start:trace **/output:**OutputFile [Options]
Mit der /start:trace-Option wird der Profiler initialisiert.
Die /output**:**OutputFile-Option ist bei /start erforderlich. Das OutputFile-Objekt gibt den Namen und den Speicherort der Profilerstellungs-Datendatei (.vsp) an.
Sie können jede der folgenden Optionen zusammen mit der /start:trace-Option verwenden.
Tipp
Die /user-Option und die /crosssession-Option sind normalerweise für ASP.NET-Anwendungen erforderlich.
Option
Beschreibung
/user:[Domain\]UserName
Gibt den optionalen Domänen- und Benutzernamen des Kontos an, das Besitzer des ASP.NET-Arbeitsprozesses ist. Diese Option ist erforderlich, wenn der Prozess als Benutzer ausgeführt wird, der mit dem angemeldeten Benutzer nicht identisch ist. Der Name wird im Windows Task-Manager auf der Registerkarte Prozesse in der Spalte Benutzername angezeigt.
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.
/wincounter:WinCounterPath
Gibt einen Windows-Leistungsindikator an, dessen Daten während der Profilerstellung gesammelt werden sollen.
/automark:Interval
Diese Option kann nur in Kombination mit /wincounter verwendet werden. 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.
Um den Profiler mit angehaltener Datensammlung zu starten, fügen Sie der /start-Befehlszeile die /globaloff-Option hinzu. Mit /globalon setzen Sie die Profilerstellung fort.
Öffnen Sie die Website, die die instrumentierte Komponente enthält.
Steuern der Datenauflistung
Während die Zielanwendung ausgeführt wird, können Sie die Datensammlung steuern, indem Sie das Schreiben von Daten in die Datei mit VSPerfCmd.exe-Optionen 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
Startet (/globalon) oder beendet (/globaloff) die Datensammlung für alle Prozesse.
/processon:PID /processoff:PID
Startet (/processon) oder beendet (/processoff) die Datensammlung für den mit der Prozess-ID (PID) angegebenen Prozess.
/threadon:TID /threadoff:TID
Startet (/threadon) oder beendet (/threadoff) die Datensammlung für den mit der Thread-ID (TID) angegebenen Thread.
Sie können auch die /mark-Option von VSPerfCmd.exe verwenden, um eine Profilmarkierung in die Datendatei einzufügen. Der /mark-Befehl fügt einen Bezeichner, einen Zeitstempel und eine optionale benutzerdefinierte Textzeichenfolge hinzu. Mit Markierungen können die Daten in Profilerberichten und Datenansichten gefiltert werden.
Beenden der Profilerstellungssitzung
Wenn Sie eine Profilerstellungssitzung beenden möchten, schließen Sie die ASP.NET-Webanwendung, und verwenden Sie den IISReset-Befehl der Internetinformationsdienste (IIS), um den ASP.NET-Arbeitsprozess zu schließen. Rufen Sie die VSPerfCmd /shutdown-Option auf, um den Profiler zu deaktivieren und die Profilerstellungs-Datendatei zu schließen. Mit dem VSPerfClrEnv /globaloff-Befehl werden die Umgebungsvariablen für die Profilerstellung gelöscht. Sie müssen den Computer neu starten, damit die neuen Umgebungseinstellungen übernommen werden.
So beenden Sie eine Profilerstellungssitzung
Schließen Sie die ASP.NET-Webanwendung.
Schließen Sie den ASP.NET-Arbeitsprozess. Geben Sie Folgendes ein:
IISReset /stop
Schließen Sie den Profiler. Typ:
VSPerfCmd /shutdown
(Optional) Löschen Sie die Umgebungsvariablen für die Profilerstellung. Typ:
VSPerfCmd /globaloff
Starten Sie den Computer neu. Falls erforderlich, starten Sie IIS erneut. Typ:
IISReset /start
Siehe auch
Konzepte
Profilerstellung für ASP.NET-Webanwendungen über die Befehlszeile
Weitere Ressourcen
.NET-Arbeitsspeicherdatenansichten der Profilerstellungstools