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
Profiler können Garbage Collection-Benachrichtigungen empfangen.
Wenn der Benutzer das Flag COR_PRF_MONITOR_GC angibt, werden alle Garbage Collection-Ereignisse mit Ausnahme von ICorProfilerCallback::ObjectAllocated-Ereignissen im Profiler ausgelöst. ObjectAllocated-Ereignisse werden aus Leistungsgründen explizit durch das Flag COR_PRF_MONITOR_OBJECT_ALLOCATED gesteuert. Beachten Sie, dass bei aktiviertem Flag COR_PRF_MONITOR_GC die gleichzeitige Garbage Collection deaktiviert ist.
In .NET Framework, Version 1.0 und 1.1, ermittelt der Codeprofiler, ob eine Garbage Collection stattfindet, indem er den ICorProfilerCallback::RuntimeSuspendFinished-Rückruf und den ICorProfilerCallback::RuntimeResumeStarted-Rückruf überwacht, wenn der Grund für die Unterbrechung COR_PRF_SUSPEND_FOR_GC ist. Während des Herunterfahrens wird auch die Common Language Runtime (CLR) unterbrochen, und eine oder mehrere Garbage Collections können stattfinden, ohne dass der Codeprofile benachrichtigt wird, da die Laufzeit bereits im unterbrochenen Zustand ist. Es ist recht schwierig, unter diesen Umständen die Beendigung der Garbage Collection zu ermitteln. Der Codeprofiler muss den allerersten ObjectAllocated-Rückruf erkennen, der nach einem ICorProfilerCallback::ObjectReferences-Rückruf oder einem ICorProfilerCallback::RootReferences-Rückruf stattgefunden hat.
In .NET Framework, ab Version 2.0, verwendet der Codeprofiler möglicherweise die ICorProfilerCallback2::GarbageCollectionStarted- und ICorProfilerCallback2::GarbageCollectionFinished-Rückrufe, um zu bestimmen, dass eine Garbage Collection stattfindet, und um die behandelten Generationen zu identifizieren. (Weitere Informationen über Garbage Collection-Generationen finden Sie unter COR_PRF_GC_GENERATION-Enumeration.) Bei diesen Rückrufen tritt nicht das im vorherigen Abschnitt erwähnte Problem mit dem Herunterfahren auf.
Tipp
Die gleichzeitige Garbage Collection wird nicht in Anwendungen unterstützt, die den WOW64 x86-Emulator auf 64-Bit-Systemen mit einer Implementierung der Intel Itanium-Architektur (früher als IA-64 bezeichnet) ausführen. Weitere Informationen zur Verwendung von WOW64 auf 64-Bit-Windows-Systemen finden Sie unter Ausführen von 32-Bit-Anwendungen.
Siehe auch
Konzepte
Blockierung der Garbage Collection in der Profilerstellungs-API