Compartir a través de


ICorProfilerInfo2::GetGenerationBounds (Método)

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

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 de ranges.

  • pcObjectRanges
    [out] Puntero a un entero que especifica el número total de intervalos, algunos o todos de los cuales se devuelven 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 dentro de 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 y cuando la recolección de elementos no utilizados no esté en curso. Es decir, puede llamarse desde cualquier devolución de llamada excepto desde las que ocurren entre ICorProfilerCallback2::GarbageCollectionStarted e ICorProfilerCallback2::GarbageCollectionFinished.

La mayoría de los desplazamientos de generaciones tienen lugar durante las recolecciones de elementos no utilizados. Las generaciones pueden crecer entre las recolecciones, pero generalmente no se mueven. Por consiguiente, los lugares más interesantes para llamar a GetGenerationBounds están en ICorProfilerCallback2::GarbageCollectionStarted e ICorProfilerCallback2::GarbageCollectionFinished.

Durante el inicio del programa, el propio Common Language Runtime (CLR) asigna algunos objetos, especialmente en las generaciones 3 y 0. De este modo, cuando el código administrado comience a ejecutarse, estas generaciones contendrán ya los 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 las implementaciones de 32 bits de CLR; el tamaño es mayor en las implementaciones de 64 bits.) También es posible que se observen intervalos de la generación 2 dentro de los módulos generados por el Generador de imágenes nativas (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 de hacerlo el recolector de elementos no utilizados.

Esta función utiliza búferes asignados por el llamador. Para obtener más información, vea Convenciones de los métodos de la API de generación de perfiles.

Requisitos

Plataformas: vea Requisitos de sistema de .NET Framework.

Encabezado: CorProf.idl, CorProf.h

Biblioteca: CorGuids.lib

Versiones de .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Vea también

Referencia

ICorProfilerInfo (Interfaz)

ICorProfilerInfo2 (Interfaz)

Otros recursos

Interfaces para generación de perfiles

Generación de perfiles (Referencia de la API no administrada)