ICorProfilerInfo2::GetGenerationBounds – metoda
Získá oblasti paměti, které jsou segmenty haldy, které tvoří různé generace uvolňování paměti.
Syntaxe
HRESULT GetGenerationBounds(
[in] ULONG cObjectRanges,
[out] ULONG *pcObjectRanges,
[out, size_is(cObjectRanges), length_is(*pcObjectRanges)] COR_PRF_GC_GENERATION_RANGE ranges[]);
Parametry
cObjectRanges
[v] Počet prvků přidělených volajícím ranges
pro pole.
pcObjectRanges
[out] Ukazatel na celé číslo, které určuje celkový počet oblastí, z nichž některé nebo všechny budou vráceny ranges
v poli.
ranges
[out] Pole COR_PRF_GC_GENERATION_RANGE struktur, z nichž každá popisuje rozsah (tj. blok) paměti v rámci generace, která prochází uvolňováním paměti.
Poznámky
Metodu GetGenerationBounds
lze volat z libovolného zpětného volání profileru za předpokladu, že neprobíhá uvolňování paměti.
Většina posunů generací probíhá během uvolňování paměti. Generace můžou narůstat mezi kolekcemi, ale obecně se nepohybují. Nejzajímavější místa k volání GetGenerationBounds
jsou proto v ICorProfilerCallback2::GarbageCollectionStarted
a ICorProfilerCallback2::GarbageCollectionFinished
.
Během spouštění programu jsou některé objekty přidělovány samotným modulem CLR (Common Language Runtime), obecně v generacích 3 a 0. Proto v době, kdy se spustí spravovaný kód, budou tyto generace již obsahovat objekty. Generace 1 a 2 budou obvykle prázdné, s výjimkou fiktivních objektů, které jsou generovány uvolňováním paměti. (V 32bitových implementacích CLR je velikost fiktivních objektů 12 bajtů, v 64bitových implementacích je velikost větší.) Můžete také vidět rozsahy 2. generace, které jsou součástí modulů vytvořených generátorem nativních bitových kopií (NGen.exe). V tomto případě jsou objekty v generaci 2 ukotvené objekty, které jsou přiděleny při spuštění NGen.exe spíše než uvolňováním paměti.
Tato funkce používá vyrovnávací paměti přidělené volajícím.
Požadavky
Platformy: Viz Požadavky na systém.
Záhlaví: CorProf.idl, CorProf.h
Knihovny: CorGuids.lib
Verze rozhraní .NET Framework: K dispozici od verze 2.0