Comparteix a través de


ICorProfilerInfo2::GetGenerationBounds (Método)

Obtiene las regiones de memoria, que son segmentos del montón, que componen las distintas generaciones de recolección de elementos no utilizados.

Sintaxis

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

Parámetros

cObjectRanges
[in] Número de elementos asignado por el llamador para la matriz ranges.

pcObjectRanges
[out] Puntero a un entero que especifica el número total de intervalos, de los que algunos o todos se devolverán en la matriz ranges.

ranges
[out] Matriz de estructuras COR_PRF_GC_GENERATION_RANGE, cada una de las cuales describe un intervalo (es decir, un bloque) de memoria en la generación que se está sometiendo a la recolección de elementos no utilizados.

Comentarios

Se puede llamar al método GetGenerationBounds desde cualquier devolución de llamada del generador de perfiles, siempre que la recolección de elementos no utilizados no esté en curso.

La mayoría de los cambios de generación tienen lugar durante las recolecciones de elementos no utilizados. Las generaciones pueden crecer de una recolección a otra, pero por lo general no se mueven. Por este motivo, los lugares más interesantes para llamar a GetGenerationBounds están en ICorProfilerCallback2::GarbageCollectionStarted y ICorProfilerCallback2::GarbageCollectionFinished.

Durante el inicio del programa, algunos objetos son asignados por el propio Common Language Runtime (CLR), por lo general en las generaciones 3 y 0. Por lo tanto, en el momento en que se inicia la ejecución del código administrado, estas generaciones ya contendrán objetos. Las generaciones 1 y 2 normalmente estarán vacías, salvo por los objetos ficticios generados por el recolector de elementos no utilizados. (El tamaño de los objetos ficticios es de 12 bytes en implementaciones de 32 bits de CLR. El tamaño es mayor en implementaciones de 64 bits). También puede ver intervalos de generación 2 que están dentro de los módulos generados por el Generador de imágenes nativo (NGen.exe). En este caso, los objetos de la generación 2 son objetos inmovilizados que se asignan cuando se ejecuta NGen.exe en lugar del recolector de elementos no utilizados.

Esta función usa búferes asignados por el llamador.

Requisitos

Plataformas: Vea Requisitos de sistema.

Encabezado: CorProf.idl, CorProf.h

Biblioteca: CorGuids.lib

Versiones de .NET Framework: disponible a partir de la versión 2.0

Consulte también