Laufzeit-Profilerstellung
Hinweis
Dieser Artikel gilt für das .NET Framework. Er gilt nicht für neuere Implementierungen von .NET, einschließlich .NET 6 und höherer Versionen.
Die Profilerstellung ist eine Methode zum Sammeln von Leistungsdaten in einer Bereitstellung oder einem Bereitstellungsszenario. Dieser Abschnitt ist für Entwickler und Systemadministratoren vorgesehen, die Informationen zur Leistung der Anwendung erfassen möchten.
Verfolgen der Leistung mithilfe des Systemmonitors (Perfmon.exe)
Der Systemmonitor ist das einfachste Tool zur Profilerstellung für Ihre .NET Framework-Anwendung. Der Systemmonitor stellt in den .NET Framework-Leistungsindikatoren erfasste Daten grafisch dar, die mit der Common Language Runtime und dem Windows SDK installiert werden. Mithilfe dieser Leistungsindikatoren können Sie von der Speicherverwaltung bis zur JIT-Compilerleistung (JIT) sämtliche Informationen überwachen. Sie informieren Sie über die von der Anwendung verwendeten Ressourcen, die ein indirektes Maß für die Leistung der Anwendung sind. Verwenden Sie diese Leistungsindikatoren, um zu verstehen, wie die Anwendung intern funktioniert.
So führen Sie „Perfmon.exe“ unter Windows Vista und höheren Versionen aus
Geben Sie an der Eingabeaufforderung perfmonein. Die Systemmonitor -Konsole wird angezeigt.
Klicken Sie im Ordner Überwachungstools auf Systemmonitor.
Klicken Sie auf der Symbolleiste des Systemmonitors auf das Symbol Hinzufügen (das Pluszeichen), sofern es vorhanden ist. Wenn es nicht vorhanden ist, klicken Sie mit der rechten Maustaste im Überwachungsfenster, und wählen Sie dann die Option Leistungsindikatoren hinzufügen aus.
Dadurch wird das Dialogfeld Leistungsindikatoren hinzufügen geöffnet. Das Listenfeld Verfügbare Indikatoren zeigt die verfügbaren Leistungsobjekte an. Es gibt eine Reihe von vordefinierten Objekten für .NET Framework-Clientanwendungen, einschließlich der Objekte für die Speicherverwaltung (.NET CLR-Speicher), Interoperabilität (.NET CLR-Interop), Ausnahmebehandlung (.NET CLR-Ausnahmen) und für Multithreading (.NET CLR-Sperren und Threads). Jedes Leistungsobjekt umfasst eine Reihe von einzelnen Leistungsindikatoren. Eine Liste der im Systemmonitor verfügbaren Leistungsindikatoren finden Sie unter Performance Countersinstalliert werden.
Aktivieren Sie das Kontrollkästchen neben dem Namen eines Leistungsobjekts, um die Liste der einzelnen Leistungsindikatoren anzuzeigen, die es unterstützt.
Klicken Sie auf den Leistungsindikator, den Sie anzeigen möchten.
Klicken Sie im Listenfeld Instanzen des ausgewählten Objekts auf <Alle Instanzen>, um anzugeben, dass Sie den Leistungsindikator für die Common Language Runtime global (d. h. systemweit) überwachen möchten.
Oder
Klicken Sie im Listenfeld Instanzen des ausgewählten Objekts auf einen Anwendungsnamen, um den Leistungsindikator für diese Anwendung zu überwachen.
Sie müssen zudem einen Registrierungsschlüssel ändern, um verschiedene Versionen der Laufzeit oder mehrere Clientanwendungen mit dem gleichen Namen zu unterscheiden. Weitere Informationen finden Sie unter Performance Counters and In-Process Side-By-Side Applications.
Hinweis
Wenn neue Leistungsindikatoren installiert werden, während die Leistungskonsole ausgeführt wird, beenden Sie die Leistungskonsole und starten sie anschließend neu, damit die neuen Indikatoren angezeigt werden.
Wenn Sie für eine Assembly ein Profil erstellen möchten, die sich in einer Zone oder auf einer Remotefreigabe befindet, stellen Sie sicher, dass die Remoteassembly auf dem Computer über volle Vertrauenswürdigkeit verfügt, auf dem die Leistungsindikatoren ausgeführt werden. Ist die Vertrauenswürdigkeit der Assembly zu gering bemessen, funktionieren die Leistungsindikatoren nicht. Informationen zum Gewähren von Vertrauenswürdigkeit für verschiedene Zonen finden Sie unter Caspol.exe (Code Access Security Policy-Tool).
Hinweis
Auf Systemen, auf denen .NET Framework 4 installiert ist, zeigt der Systemmonitor möglicherweise in einigen Kategorien, z. B. in .NET CLR-Daten und .NET CLR-Netzwerk, keine Daten für Leistungsindikatoren für Anwendungen an, die mithilfe von .NET Framework 1.1 entwickelt wurden. Wenn dies der Fall ist, können Sie den Systemmonitor entsprechend konfigurieren, um diese Daten durch Hinzufügen des <forcePerformanceCounterUniqueSharedMemoryReads>-Elements in der Konfigurationsdatei der Anwendung anzuzeigen.
Programmgesteuertes Lesen und Erstellen von Leistungsindikatoren
.NET Framework stellt Klassen bereit, mit denen Sie programmgesteuert auf dieselben Leistungsdaten zugreifen können, die in der Leistungskonsole verfügbar sind. Mithilfe dieser Klassen können Sie auch benutzerdefinierte Leistungsindikatoren erstellen. In der folgenden Tabelle sind einige der Systemmonitorklassen beschrieben, die im .NET Framework bereitgestellt werden.
Klasse | BESCHREIBUNG |
---|---|
System.Diagnostics.PerformanceCounter | Stellt eine Windows-Leistungsindikatorkomponente dar. Verwenden Sie diese Klasse, um vordefinierte oder benutzerdefinierte Leistungsindikatoren zu lesen und Leistungsdaten für benutzerdefinierte Indikatoren zu veröffentlichen (schreiben). |
System.Diagnostics.PerformanceCounterCategory | Bietet verschiedene Methoden für die Interaktion mit Indikatoren und Kategorien von Indikatoren auf dem Computer. |
System.Diagnostics.PerformanceCounterInstaller | Gibt einen Installer für die PerformanceCounter -Komponente an. |
System.Diagnostics.PerformanceCounterType | Gibt die Formel zum Berechnen der NextValue -Methode für eine PerformanceCounter an. |