Share via


Metodo ICorProfilerInfo2::GetGenerationBounds

Ottiene le aree di memoria, ovvero i segmenti dell'heap, che costituiscono le diverse generazioni di Garbage Collection.

Sintassi

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

Parametri

cObjectRanges
[in] Numero di elementi allocati dal chiamante per la matrice ranges.

pcObjectRanges
[out] Puntatore a un intero che specifica il numero complessivo di intervalli restituiti, interamente o in parte, nella matrice ranges.

ranges
[out] Matrice di strutture COR_PRF_GC_GENERATION_RANGE , ognuna delle quali descrive un intervallo (ovvero un blocco) di memoria all'interno della generazione che sta subendo la Garbage Collection.

Commenti

Il metodo GetGenerationBounds può essere chiamato da qualsiasi callback del profiler, purché non sia in corso un'operazione di Garbage Collection.

La maggior parte delle modifiche di generazione si verifica durante le operazioni di Garbage Collection. Le generazioni possono aumentare tra un'operazione di Garbage Collection e l'altra, ma in genere non si spostano. I punti più interessanti in cui chiamare GetGenerationBounds sono quindi ICorProfilerCallback2::GarbageCollectionStarted e ICorProfilerCallback2::GarbageCollectionFinished.

Durante l'avvio del programma, alcuni oggetti vengono allocati direttamente da Common Language Runtime, di solito nelle generazioni 3 e 0. In questo modo, prima che inizi l'esecuzione del codice gestito, queste generazioni conterranno già oggetti. Le generazioni 1 e 2 in genere restano vuote, a eccezione degli oggetti fittizi generati dal Garbage Collector. Le dimensioni degli oggetti fittizi sono 12 byte in implementazioni a 32 bit del CLR. Le dimensioni sono maggiori in implementazioni a 64 bit. È anche possibile che vengano visualizzati intervalli di seconda generazione che si trovano all'interno di moduli prodotti dal generatore di immagini native (NGen.exe). In questo caso, gli oggetti della generazione 2 sono oggetti bloccati, allocati quando NGen.exe viene eseguito anziché dal Garbage Collector.

Questa funzione usa buffer allocati dal chiamante.

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: CorProf.idl, CorProf.h

Libreria: CorGuids.lib

Versioni di .NET Framework: Disponibile da 2.0

Vedi anche