Partilhar via


Método de ICorProfilerInfo2::GetGenerationBounds

Obtém as regiões de memória, que são segmentos de pilha, que compõem as várias gerações de coleta de 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 os quais serão retornados o 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 que está passando a coleta de lixo.

Comentários

O GetGenerationBounds método pode ser chamado a partir de qualquer retorno de chamada do profiler, desde que a coleta de lixo é não está em andamento. Ou seja, ele pode ser chamado a partir de qualquer retorno de chamada, exceto aqueles que ocorrem entre ICorProfilerCallback2::GarbageCollectionStarted e ICorProfilerCallback2::GarbageCollectionFinished.

Deslocando a maioria das gerações ocorre durante as coletas de lixo. Gerações podem crescer entre coleções, mas geralmente não mover. Portanto, os lugares mais interessantes para chamar GetGenerationBounds em ICorProfilerCallback2::GarbageCollectionStarted e ICorProfilerCallback2::GarbageCollectionFinished.

Durante a inicialização do programa, alguns objetos são alocados pelo common language runtime (CLR) em si, geralmente em gerações 3 e 0. Assim, no momento em que inicia o código gerenciado em execução, essas gerações já contêm objetos. Gerações 1 e 2 normalmente estará vazias, exceto para objetos fictícios que são gerados pelo coletor de lixo. (O tamanho dos objetos fictícios é 12 bytes em implementações de 32 bits do CLR; o tamanho é maior em implementações de 64 bits.) Você também pode ver os intervalos de geração 2 que estão dentro de módulos produzidos pela Native Image Generator (NGen. exe). Nesse caso, os objetos na geração 2 são congelada objetos, que são alocados quando NGen. exe é executado em vez de pelo coletor de lixo.

Essa função usa os buffers alocados do chamador. Para obter mais informações, consulte Convenções de método de API de criação de perfil.

Requisitos

Plataformas: Consulte Requisitos de sistema do .NET Framework.

Cabeçalho: Corprof. idl, CorProf.h

Biblioteca: CorGuids.lib

.NET Framework versões: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Consulte também

Referência

Interface de ICorProfilerInfo

Interface de ICorProfilerInfo2

Outros recursos

Interfaces de criação de perfil

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