Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Aktualisiert: November 2007
Die Profilerstellungs-API bietet Informationen über verschiedene Ereignisse und Aktionen in der Common Language Runtime (CLR). Sie können diese Informationen zum Überwachen der internen Funktionsweise von Prozessen und zum Analysieren der Leistung Ihrer .NET Framework-Anwendung verwenden.
Unterstützte Funktionen
Die Profilerstellungs-API ruft Informationen über die folgenden Aktionen und die Ereignisse ab, die in der CLR auftreten:
CLR-Ereignisse beim Starten und Herunterfahren.
Ereignisse bei der Anwendungsdomänenerstellung und beim Herunterfahren.
Ereignisse beim Laden und Entladen von Assemblys.
Ereignisse beim Laden und Entladen von Ereignissen.
Ereignisse beim Erstellen und Löschen von COM-vtable.
Ereignisse bei der JIT-Kompilierung (Just-In-Time) und beim Codepitching.
Ereignisse beim Laden und Entladen von Klassen.
Ereignisse beim Erstellen und Löschen von Threads.
Ereignisse beim Funktionseinstieg und Funktionsende.
Ausnahmen.
Übergänge zwischen verwalteter und nicht verwalteter Codeausführung.
Übergänge zwischen verschiedenen Laufzeitkontexten.
Informationen über Laufzeitunterbrechungen.
Informationen über den Laufzeitspeicherheap und die Garbage Collection-Aktivität.
Die Profilerstellungs-API kann von jeder (nicht verwalteten) COM-kompatiblen Sprache aufgerufen werden.
Die API ist im Hinblick auf die Prozessor- und Speicherauslastung effizient. Durch die Profilerstellung werden an der Anwendung mit Profil keine Änderungen durchgeführt, die so signifikant sind, dass es zu falschen Ergebnissen kommt.
Die Profilerstellungs-API ist sowohl für Samplingprofiler als auch für andere Profiler nützlich. Ein Samplingprofiler überprüft das Profil in regelmäßigen Teilstrichen, z. B. alle fünf Millisekunden. Ein Nicht-Samplingprofiler wird synchron mit dem Thread, der das Ereignis verursacht, über ein Ereignis informiert.
Nicht unterstützte Funktionalität
Die Profilerstellungs-API unterstützt die folgenden Funktionen nicht:
Nicht verwalteter Code. Die Profilerstellungs-API der CLR kann nur für verwalteten Code verwendet werden. Sie müssen konventionelle Win32-Mechanismen zur Profilerstellung für nicht verwalteten Code verwenden. Der CLR-Profiler umfasst jedoch Übergangsereignisse, um die Grenzen zwischen verwaltetem und nicht verwaltetem Code zu ermitteln.
Selbsttätig ändernde Anwendungen. Die Profilerstellungs-API unterstützt keine Anwendungen, die ihren eigenen Code zu bestimmten Zwecken, beispielsweise bei der aspektorientierten Programmierung, selbsttätig ändern.
Überprüfung von Grenzen. Die Profilerstellungs-API stellte keine Informationen bereit, die zur Überprüfung von Grenzen erforderlich sind. Die CLR bietet systeminterne Unterstützung für die Überprüfung von Grenzen des gesamten verwalteten Codes.
Remoteprofilerstellung. Die CLR-Codeprofilerschnittstellen unterstützen aus den folgenden Gründen keine Remoteprofilerstellung:
Durch die Remoteprofilerstellung verlängert sich die Ausführungszeit. Bei der Verwendung der Profilerschnittstellen müssen Sie die Ausführungszeit minimieren, damit die Auswirkungen auf die Profilerstellungsergebnisse möglichst gering bleiben. Dies trifft insbesondere dann zu, wenn die Ausführungsleistung überwacht wird. Dabei stellt die Remoteprofilerstellung jedoch keine Einschränkung dar, wenn Profilerschnittstellen zum Überwachen der Speicherauslastung oder zum Abrufen von Laufzeitinformationen über Stapelrahmen, Objekte usw. verwendet werden.
Der CLR-Codeprofiler muss mindestens eine Rückrufschnittstelle bei der Laufzeit des lokalen Computers registrieren, auf dem die Anwendung mit Profil ausgeführt wird. Hierdurch wird die Möglichkeit eingeschränkt, einen Remotecodeprofiler zu erstellen.
Profilerstellung in Produktionsumgebungen, die eine hohe Verfügbarkeit erfordern. Die Profilerstellungs-API wurde erstellt, um die Diagnose bei der Entwicklung zu unterstützen. Sie wurde nicht den strengen Tests unterzogen, die für die Unterstützung einer Produktionsumgebung erforderlich sind.