Udostępnij za pośrednictwem


ICorProfilerInfo2::GetGenerationBounds — Metoda

Pobiera regiony pamięci, które są segmentami stert, które składają się na różne generacje odzyskiwania pamięci.

Składnia

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

Parametry

cObjectRanges
[w] Liczba elementów przydzielonych przez obiekt wywołujący dla tablicy ranges .

pcObjectRanges
[out] Wskaźnik do liczby całkowitej, która określa całkowitą liczbę zakresów, z których część lub wszystkie zostaną zwrócone w tablicy ranges .

ranges
[out] Tablica struktur COR_PRF_GC_GENERATION_RANGE , z których każdy opisuje zakres pamięci (czyli blok) pamięci w ramach generowania, które przechodzi odzyskiwanie pamięci.

Uwagi

Metodę GetGenerationBounds można wywołać z dowolnego wywołania zwrotnego profilera, pod warunkiem że odzyskiwanie pamięci nie jest w toku.

Większość zmian pokoleń odbywa się podczas odzyskiwania pamięci. Generacje mogą rosnąć między kolekcjami, ale zazwyczaj nie przemieszczają się. Dlatego najciekawsze miejsca do wywołania GetGenerationBounds to ICorProfilerCallback2::GarbageCollectionStarted i ICorProfilerCallback2::GarbageCollectionFinished.

Podczas uruchamiania programu niektóre obiekty są przydzielane przez środowisko uruchomieniowe języka wspólnego (CLR), zazwyczaj w generacjach 3 i 0. W związku z tym po rozpoczęciu wykonywania kodu zarządzanego te generacje będą już zawierać obiekty. Generacje 1 i 2 będą zwykle puste, z wyjątkiem fikcyjnych obiektów generowanych przez moduł odśmiecania pamięci. (Rozmiar fikcyjnych obiektów to 12 bajtów w 32-bitowych implementacjach środowiska CLR; rozmiar jest większy w implementacjach 64-bitowych). Można również zobaczyć zakresy generacji 2, które znajdują się wewnątrz modułów generowanych przez generator obrazów natywnych (NGen.exe). W takim przypadku obiekty w generacji 2 są zamarzniętymi obiektami, które są przydzielane podczas NGen.exe działa, a nie przez moduł odśmiecający pamięci.

Ta funkcja używa buforów przydzielonych przez obiekt wywołujący.

Wymagania

Platformy: Zobacz Wymagania systemowe.

Nagłówka: CorProf.idl, CorProf.h

Biblioteki: CorGuids.lib

.NET Framework wersje: dostępne od wersji 2.0

Zobacz też