Compartilhar via


Método ICorProfilerInfo2::GetGenerationBounds

Obtém as regiões de memória, que são segmentos de pilha, que formam as diversas gerações coleta lixo.

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] O número de elementos alocado pelo chamador para o ranges matriz.

  • pcObjectRanges
    [out] Um ponteiro para um número inteiro que especifica o número total de intervalos, alguns ou todos eles serão retornados no ranges matriz.

  • ranges
    [out] Uma matriz de COR_PRF_GC_GENERATION_RANGE estruturas, cada uma delas descreve um intervalo (ou seja, o bloco) de memória dentro da geração está passando por lixo coleção.

Comentários

The GetGenerationBounds método pode ser chamado de qualquer retorno de chamada do criador de perfil, fornecido esse lixo coleção não está em andamento. Ou seja, podem ser chamado de qualquer retorno de chamada, exceto aqueles que ocorrem entre ICorProfilerCallback2::GarbageCollectionStarted and ICorProfilerCallback2::GarbageCollectionFinished.

Deslocando a maioria das gerações ocorre durante a coletas de lixo. Gerações podem crescer entre coleções, mas geralmente não movam ao redor. Portanto, mais interessante coloca chamar GetGenerationBounds estão em ICorProfilerCallback2::GarbageCollectionStarted e ICorProfilerCallback2::GarbageCollectionFinished.

Durante a inicialização do programa, alguns objetos são alocados pelo common linguagem tempo de execução (CLR), geralmente em gerações 3 e 0. Assim, no momento em código gerenciado é iniciado em execução, esses gerações já contém objetos. Gerações 1 e 2 normalmente estará vazias, exceto para objetos fictícios gerados pelo coletor de lixo. (O dimensionar dos objetos fictícios é 12 bytes em implementações de 32 bit do CLR; é maior em implementações de 64 bit). Você também pode ver os intervalos de geração 2 que estão dentro de módulos produzidos pelo nativo imagem gerador (NGen.exe). Nesse caso, os objetos na geração 2 são objetos congelados, que são alocados quando NGen.exe é executado e não pelo coletor de lixo.

Essa função usa os buffers alocados chamador. Para obter mais informações, consulte Buffers alocados chamador da API de criação de perfil.

Requisitos

Plataformas: See Requisitos de sistema do .NET framework.

Cabeçalho: CorProf.idl

Biblioteca: CorGuids.lib

.NET Framework Versions: 3.5 SP1, 3,5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Consulte também

Referência

Interface ICorProfilerInfo

Interface ICorProfilerInfo2

Outros recursos

Interfaces de criação de perfil

Criação de perfil (referência de API não gerenciada)