Freigeben über


ICorProfilerInfo2::GetGenerationBounds-Methode

Ruft die Arbeitsspeicherbereiche ab, die Segmente des Heaps sind, aus dem sich die verschiedenen Garbage Collection-Generationen zusammensetzen.

Syntax

HRESULT GetGenerationBounds(  
    [in]  ULONG cObjectRanges,  
    [out] ULONG *pcObjectRanges,  
    [out, size_is(cObjectRanges), length_is(*pcObjectRanges)] COR_PRF_GC_GENERATION_RANGE ranges[]);  

Parameter

cObjectRanges
[in] Die Anzahl der Elemente, die der Aufrufer dem ranges-Array zugeordnet hat.

pcObjectRanges
[out] Ein Zeiger auf eine ganze Zahl, die die Gesamtzahl der Bereiche angibt, von denen einige oder alle im ranges-Array zurückgegeben werden.

ranges
[out] Ein Array von COR_PRF_GC_GENERATION_RANGE-Strukturen, von denen jede einen Bereich (d. h. einen Block) des Arbeitsspeichers innerhalb der Generation beschreibt, für die eine Garbage Collection durchgeführt wird.

Bemerkungen

Die GetGenerationBounds-Methode kann von jedem Profilerrückruf aufgerufen werden, solange die Garbage Collection nicht durchgeführt wird.

Die meisten Generationenverschiebungen finden während der Garbage Collections statt. Generationen können zwischen Auflistungen anwachsen, verschieben sich im Allgemeinen jedoch nicht. Deshalb befinden sich die interessantesten Positionen zum Aufrufen von GetGenerationBounds in ICorProfilerCallback2::GarbageCollectionStarted und ICorProfilerCallback2::GarbageCollectionFinished.

Während des Programmstarts werden einige Objekte in der Regel in den Generationen 3 und 0 von der Common Language Runtime (CLR) selbst zugeordnet. Daher enthalten diese Generationen zu dem Zeitpunkt, an dem der verwaltete Code die Ausführung startet, bereits Objekte. Die Generationen 1 und 2 sind normalerweise (bis auf vom Garbage Collector generierte Dummyobjekte) leer. (Die Größe von Dummyobjekten beträgt in 32-Bit-Implementierungen der CLR 12 Bytes und ist bei 64-Bit-Implementierungen größer.) Möglicherweise werden auch Bereiche der Generation 2 angezeigt, die sich in Modulen befinden, die vom Native Image Generator (NGen.exe) erstellt werden. In diesem Fall handelt es sich bei den Objekten in Generation 2 um fixierte Objekte, die beim Ausführen von „NGen.exe“ und nicht vom Garbage Collector zugeordnet werden.

Diese Funktion verwendet vom Aufrufer reservierte Puffer.

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Header: CorProf.idl, CorProf.h

Bibliothek: CorGuids.lib

.NET Framework-Versionen: Seit 2.0 verfügbar.

Siehe auch