Methode ICorProfilerInfo2::GetGenerationBounds
Hiermee haalt u de geheugenregio's op, die segmenten van de hoop zijn, waaruit de verschillende garbagecollection-generaties bestaan.
Syntaxis
HRESULT GetGenerationBounds(
[in] ULONG cObjectRanges,
[out] ULONG *pcObjectRanges,
[out, size_is(cObjectRanges), length_is(*pcObjectRanges)] COR_PRF_GC_GENERATION_RANGE ranges[]);
Parameters
cObjectRanges
[in] Het aantal elementen dat door de aanroeper voor de ranges
matrix is toegewezen.
pcObjectRanges
[uit] Een aanwijzer naar een geheel getal dat het totale aantal bereiken aangeeft, waarvan sommige of alle worden geretourneerd in de ranges
matrix.
ranges
[uit] Een matrix van COR_PRF_GC_GENERATION_RANGE structuren, die elk een bereik (dat wil gezegd, blok) geheugen beschrijven binnen de generatie die garbagecollection ondergaat.
Opmerkingen
De GetGenerationBounds
methode kan worden aangeroepen vanuit elke profiler-callback, op voorwaarde dat garbagecollection niet wordt uitgevoerd.
De meeste verschuivingen van generaties vindt plaats tijdens garbagecollection. Generaties kunnen tussen verzamelingen groeien, maar verplaatsen zich over het algemeen niet. Daarom zijn de meest interessante plaatsen om te bellen GetGenerationBounds
in ICorProfilerCallback2::GarbageCollectionStarted
en ICorProfilerCallback2::GarbageCollectionFinished
.
Tijdens het opstarten van het programma worden sommige objecten toegewezen door de Common Language Runtime (CLR), meestal in de 3e en 0e generatie. Tegen de tijd dat de beheerde code wordt uitgevoerd, bevatten deze generaties dus al objecten. De generaties 1 en 2 zijn normaal gesproken leeg, met uitzondering van dummyobjecten die door de garbagecollector worden gegenereerd. (De grootte van dummy-objecten is 12 bytes in 32-bits implementaties van de CLR; de grootte is groter in 64-bits implementaties.) Mogelijk ziet u ook bereiken van de tweede generatie die zich in modules bevinden die zijn geproduceerd door de Native Image Generator (NGen.exe). In dit geval zijn de objecten in generatie 2 bevroren objecten, die worden toegewezen wanneer NGen.exe wordt uitgevoerd in plaats van door de garbagecollector.
Deze functie maakt gebruik van buffers die zijn toegewezen aanroepen.
Vereisten
Platforms: Zie Systeemvereisten.
Header: CorProf.idl, CorProf.h
Bibliotheek: CorGuids.lib
.NET Framework versies: beschikbaar sinds 2.0