Sdílet prostřednictvím


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

Viz také