Freigeben über


ICorProfilerInfo2::GetGenerationBounds-Methode

Aktualisiert: November 2007

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

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 vom Aufrufer für das ranges-Array reserviert wird.

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

  • 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.

Hinweise

Die GetGenerationBounds-Methode kann von jedem Profilerrückruf aufgerufen werden, solange die Garbage Collection nicht durchgeführt wird. Das heißt, sie kann von einem beliebigen Rückruf mit Ausnahme der Rückrufe aufgerufen werden, die zwischen ICorProfilerCallback2::GarbageCollectionStarted und ICorProfilerCallback2::GarbageCollectionFinished auftreten.

Die meisten Generationenverschiebungen finden während der Garbage Collections statt. Generationen können zwischen Auflistungen anwachsen, verschieben sich in der Regel 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 reserviert. 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 leer, mit Ausnahme der vom Garbage Collector generierten Dummyobjekte. (Die Größe der Dummyobjekte beträgt 12 Bytes in 32-Bit-Implementierungen der CLR; in 64-Bit-Implementierungen ist die Größe umfangreicher.) Es sind eventuell auch Bereiche der Generation 2 in den Modulen vorhanden, die von Native Image Generator (NGen.exe) erzeugt wurden. 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 reserviert werden.

Diese Funktion verwendet vom Aufrufer reservierte Puffer. Weitere Informationen finden Sie unter Vom Aufrufer reservierte Puffer in der Profilerstellungs-API.

Anforderungen

Plattformen: siehe Systemanforderungen für .NET Framework.

Header: CorProf.idl

Bibliothek: CorGuids.lib

.NET Framework-Versionen: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Siehe auch

Referenz

ICorProfilerInfo

ICorProfilerInfo2

Weitere Ressourcen

Profilerstellungsschnittstellen

Profilerstellung (Referenz zur nicht verwalteten API)