Speicherleistungsindikatoren

Die Kategorie .NET CLR-Speicher der Verwaltungskonsole Leistung enthält Zähler, die Informationen zum Garbage Collector liefern. In der folgenden Tabelle werden diese Leistungsindikatoren beschrieben.

Leistungsindikator Beschreibung

Anzahl der Bytes in den Heaps

Zeigt die Summe der Zähler Heapgröße der Generation 0, Heapgröße der Generation 1, Heapgröße der Generation 2, und Objektheapgröße an. Dieser Zähler gibt den momentan auf den Garbage Collection-Heaps belegten Speicherplatz in Bytes an.

Anzahl der GC-Handle

Zeigt die aktuelle Anzahl der verwendeten Garbage Collection-Handle an. Garbage Collection-Handle sind Handle zu Ressourcen außerhalb der Common Language Runtime und der verwalteten Umgebung.

Auflistungsanzahl der Generation 0

Zeigt an, wie oft für Objekte der Generation 0 (d. h. die jüngsten, zuletzt zugewiesenen Objekte) seit dem Anwendungsstart eine Garbage Collection durchgeführt wurde.

Die Garbage Collection für Generation 0 wird durchgeführt, wenn der verfügbare Speicher in Generation 0 nicht ausreicht, um eine Speicheranforderung zu erfüllen. Dieser Zähler wird am Ende der Garbage Collection für Generation 0 erhöht. Garbage Collections für spätere Generationen enthalten auch die Garbage Collections für alle vorhergehenden Generationen. Dieser Zähler wird explizit erhöht, wenn eine Garbage Collection für eine spätere Generation (Generation 1 oder 2) durchgeführt wird.

Dieser Zähler zeigt den zuletzt erfassten Wert an. Der Zählerwert _Global_ ist ungenau und sollte ignoriert werden.

Auflistungsanzahl der Generation 1

Zeigt an, wie oft für Objekte der Generation 1 seit dem Anwendungsstart eine Garbage Collection durchgeführt wurde.

Der Zähler wird am Ende der Garbage Collection für Generation 1 erhöht. Garbage Collections für spätere Generationen enthalten auch die Garbage Collections für alle vorhergehenden Generationen. Dieser Zähler wird explizit erhöht, wenn eine Garbage Collection für eine spätere Generation (Generation 2) durchgeführt wird.

Dieser Zähler zeigt den zuletzt erfassten Wert an. Der Zählerwert _Global_ ist ungenau und sollte ignoriert werden.

Auflistungsanzahl der Generation 2

Zeigt an, wie oft für Objekte der Generation 2 seit dem Anwendungsstart eine Garbage Collection durchgeführt wurde. Der Zähler wird am Ende der Garbage Collection für Generation 2 (auch als vollständige Garbage Collection bezeichnet) erhöht.

Dieser Zähler zeigt den zuletzt erfassten Wert an. Der Zählerwert _Global_ ist ungenau und sollte ignoriert werden.

Anzahl der ausgelösten GC

Zeigt die Höchstzahl der durchgeführten Garbage Collections aufgrund eines expliziten Aufrufs an GC.Collect an. Es wird empfohlen, die Einstellung der Häufigkeit der durchgeführten Garbage Collections dem Garbage Collector zu überlassen.

Anzahl der fixierten Objekte

Zeigt die Anzahl der fixierten Objekte an, die in der letzten Garbage Collection gefunden wurden. Ein fixiertes Objekt kann durch den Garbage Collector im Speicher nicht verschoben werden. Dieser Zähler verfolgt die fixierten Objekte nur auf Heaps, für die eine Garbage Collection durchgeführt wurde. Eine Garbage Collection der Generation 0 verursacht beispielsweise nur eine Enumeration der fixierten Objekte auf dem Heap der Generation 0.

Anzahl der verwendeten Senkenblöcke

Zeigt die aktuelle Anzahl der verwendeten Synchronisierungsblöcke an. Synchronisierungsblöcke sind Datenstrukturen für einzelne Objekte, die zum Speichern von Synchronisierungsdaten zugewiesen wurden. Synchronisierungsblöcke enthalten schwache Verweise auf verwaltete Objekte und müssen vom Garbage Collector durchsucht werden. Synchronisierungsblöcke werden jedoch nicht nur zum Speichern von Synchronsierungsdaten verwendet, sondern können auch COM-Interop-Metadaten speichern. Dieser Zähler zeigt Leistungsprobleme im Zusammenhang mit der starken Nutzung von Synchronisierungsprimitiven an.

Festgelegte Bytes insgesamt

Zeigt den virtuellen Speicher (in Bytes) an, der momentan durch den Garbage Collector belegt ist. Der belegte Speicher ist der physische Speicher, für den in der Auslagerungsdatei der Festplatte Platz reserviert wurde.

Gesamtanzahl der reservierten Bytes

Zeigt den virtuellen Speicher (in Bytes) an, der momentan durch den Garbage Collector reserviert ist. Der reservierte Speicher ist der für die Anwendung reservierte virtuelle Speicherplatz, für den jedoch keine Festplatten- oder Hauptspeicherseiten verwendet wurden.

GC-Zeitdauer in Prozent

Zeigt an, wie viel Prozent der vergangenen Zeit seit dem letzten Garbage Collection-Durchlauf mit der Durchführung der Garbage Collection verbracht wurde. Dieser Zähler zeigt in der Regel die durch den Garbage Collector zum Sammeln und Komprimieren von Speicherplatz für die Anwendung durchgeführte Arbeit an. Er wird nur am Ende jeder Garbage Collection aktualisiert. Dieser Zähler ist kein Durchschnittswert, sondern zeigt den zuletzt erfassten Wert an.

Zugewiesene Bytes/Sek.

Zeigt die Anzahl der auf dem Garbage Collection-Heap zugewiesenen Bytes pro Sekunde an. Dieser Zähler wird nicht bei jeder Zuweisung, sondern nur am Ende jeder Garbage Collection aktualisiert. Dieser Zähler ist kein Durchschnittswert über einen Zeitraum. Es wird vielmehr der Unterschied zwischen den festgestellten Werten in den letzten beiden Abtastungen, dividiert durch die Dauer des Abtastintervalls, angezeigt.

Finalization Survivors

Zeigt die Anzahl der Objekte an, für die eine Garbage Collection durchgeführt wurde und die dabei nicht gelöscht wurden, da sie auf die Festlegung warten. Wenn diese Objekte Verweise auf andere Objekte enthalten, werden diese zwar ebenfalls nicht gelöscht, durch diesen Zähler jedoch nicht erfasst. Die Zähler Promoted Finalization-Memory from Gen 0 und Promoted Finalization-Memory from Gen 1 repräsentieren den gesamten aufgrund der Festlegung beibehaltenen Speicher.

Dieser Speicher ist nicht kumulativ. Er wird am Ende jeder Garbage Collection lediglich durch die Anzahl der bei dieser Garbage Collection beibehaltenen Elemente aktualisiert. Dieser Zähler zeigt den durch die Anwendung zu bearbeitenden zusätzlichen Aufwand an, der möglicherweise aufgrund der Festlegung anfällt.

Heapgröße der Generation 0

Zeigt die maximale Byteanzahl an, die in Generation 0 zugewiesen werden kann. Dieser Zähler zeigt nicht die aktuelle Byteanzahl an, die in Generation 0 zugewiesen wurde.

Eine Garbage Collection für Generation 0 wird durchgeführt, wenn die Zuweisungen seit der letzten Garbage Collection diese Anzahl überschreiten. Die Größe von Generation 0 wird durch den Garbage Collector eingestellt und kann sich während der Ausführung der Anwendung ändern. Am Ende der Garbage Collection für Generation 0 beträgt die Größe des Generation 0-Heaps 0 Bytes. Dieser Zähler zeigt die Größe von Zuweisungen (in Bytes) an, bei der die nächste Garbage Collection für Generation 0 durchgeführt wird.

Dieser Zähler wird nicht bei jeder Zuweisung, sondern nur am Ende einer Garbage Collection aktualisiert.

Von Generation 0 avancierte Bytes/Sek.

Zeigt die Bytes pro Sekunde an, die von Generation 0 zu Generation 1 avanciert werden. Wenn der Speicherplatz bei einer Garbage Collection unverändert bleibt, wird er avanciert. Dieser Zähler weist darauf hin, dass pro Sekunde relativ langlebige Objekte erstellt werden.

Dieser Zähler zeigt den Unterschied zwischen den festgestellten Werten in den letzten beiden Abtastungen, dividiert durch die Dauer des Abtastintervalls, an.

Heapgröße der Generation 1

Zeigt die aktuelle Byteanzahl in Generation 1 an. Dieser Zähler zeigt nicht die Maximalgröße von Generation 1 an. In dieser Generation werden die Objekte nicht direkt zugewiesen, sondern von zuvor durchgeführten Garbage Collections der Generation 0 avanciert. Dieser Zähler wird nicht bei jeder Zuweisung, sondern nur am Ende einer Garbage Collection aktualisiert.

Von Generation 1 avancierte Bytes/Sek.

Zeigt die Bytes pro Sekunde an, die von Generation 1 zu Generation 2 avanciert werden. Dieser Zähler ignoriert Objekte, die nur deshalb avanciert werden, weil sie auf die Festlegung warten.

Wenn der Speicherplatz bei einer Garbage Collection unverändert bleibt, wird er avanciert. Von Generation 2 werden keine Elemente avanciert, da es sich hierbei um die älteste Generation handelt. Dieser Zähler weist darauf hin, dass pro Sekunde sehr langlebige Objekte erstellt werden.

Dieser Zähler zeigt den Unterschied zwischen den festgestellten Werten in den letzten beiden Abtastungen, dividiert durch die Dauer des Abtastintervalls, an.

Heapgröße der Generation 2

Zeigt die aktuelle Byteanzahl in Generation 2 an. In dieser Generation werden Objekte nicht direkt zugewiesen, sondern während zuvor durchgeführter Garbage Collections der Generation 1 von Generation 1 avanciert. Dieser Zähler wird nicht bei jeder Zuweisung, sondern nur am Ende einer Garbage Collection aktualisiert.

Objektheapgröße

Zeigt die aktuelle Größe des Objektheaps (in Bytes) an. Objekte mit mehr als 20 KB werden vom Garbage Collector als große Objekte behandelt und in einem gesonderten Heap direkt zugewiesen. Sie werden nicht von Generation zu Generation avanciert. Dieser Zähler wird nicht bei jeder Zuweisung, sondern nur am Ende einer Garbage Collection aktualisiert.

Von Generation 0 avancierter Festlegungsspeicher

Zeigt die Speicherbytes an, die nur deshalb von Generation 0 zu Generation 1 avanciert wurden, weil sie auf die Festlegung warten. Dieser Zähler ist nicht kumulativ. Er zeigt den am Ende der letzten Garbage Collection erfassten Wert an.

Von Generation 1 avancierter Festlegungsspeicher

Zeigt die Speicherbytes an, die nur deshalb von Generation 1 zu Generation 2 avanciert wurden, weil sie auf die Festlegung warten. Dieser Zähler ist nicht kumulativ. Er zeigt den am Ende der letzten Garbage Collection erfassten Wert an. Dieser Zähler wird auf 0 zurückgesetzt, wenn die letzte Garbage Collection nur für Generation 0 durchgeführt wurde.

Von Generation 0 avancierter Speicher

Zeigt die Speicherbytes an, die bei der Garbage Collection beibehalten und von Generation 0 zu Generation 1 avanciert werden. Dieser Zähler ignoriert Objekte, die nur deshalb avanciert werden, weil sie auf die Festlegung warten. Dieser Zähler ist nicht kumulativ. Er zeigt den am Ende der letzten Garbage Collection erfassten Wert an.

Von Generation 1 avancierter Speicher

Zeigt die Speicherbytes an, die bei der Garbage Collection beibehalten und von Generation 1 zu Generation 2 avanciert werden. Dieser Zähler ignoriert Objekte, die nur deshalb avanciert werden, weil sie auf die Festlegung warten. Dieser Zähler ist nicht kumulativ. Er zeigt den am Ende der letzten Garbage Collection erfassten Wert an. Dieser Zähler wird auf 0 zurückgesetzt, wenn die letzte Garbage Collection nur für Generation 0 durchgeführt wurde.

Siehe auch

Referenz

Laufzeit-Profilerstellung

Konzepte

Automatische Speicherverwaltung

Weitere Ressourcen

Leistungsindikatoren in .NET Framework