Compartilhar via


DA0005: Freqüente coleções de GC2

RuleId

DA0005

<strong>Categoria</strong>

.NET Framework uso

Método de criação de perfil

.NET memória

Message (Mensagem)

Muitos dos seus objetos estão sendo coletados na coleta de lixo 2 de geração.

Tipo de mensagem

Aviso

Causa

Um número alto de.Objetos de memória NET estão sendo recuperados na coleta de lixo 2 de geração.

Descrição da regra

A Microsoft.NET common language runtime (CLR) fornece um mecanismo de gerenciamento automático de memória que usa um coletor de lixo para recuperar memória de objetos que o aplicativo não usa mais.O coletor de lixo é orientado a geração, com base na suposição de que muitas alocações são de curta duração.Variáveis locais, por exemplo, devem ser curta duração.Objetos recém-criados inicie na geração 0 (Ger 0) e, em seguida, de andamento para a geração 1 quando eles sobrevivem uma coleta de lixo executar e, finalmente a transição para a geração 2 se o aplicativo ainda usa-los.

Objetos na geração 0 são coletados com freqüência e geralmente muito eficiente.Objetos na geração 1 são coletados com menos freqüência e menos eficiente.Finalmente, longa vida objetos na geração 2 devem ser coletados com ainda menos freqüência.Coleta de geração 2, que é executar coleta de lixo completa, também é a operação mais cara.

Esta regra dispara quando proporcionalmente número excessivo de geração 2 coletas de lixo ocorreram.Se muitos objetos de vida relativamente curta sobrevivem a coleta de geração 1, mas são capazes de serem coletados em um conjunto completo de geração 2, o custo do gerenciamento de memória pode facilmente se tornar excessivo.Para obter mais informações, consulte o crise Mid-life postar em dados sobre o desempenho de Mariani o Rico no site do MSDN.

Como investigar um aviso

Revisão do Ferramentas de criação de perfil.Modos de exibição de dados de memória de NET relatórios para entender o padrão do aplicativo de alocação de memória.Use o Exibição de tempo de vida do objeto para determinar quais objetos estão sobreviventes na geração 2 e, em seguida, sendo recuperada a partir daí de dados do programa.Use o .Exibição de alocações de memória de NET para determinar o caminho de execução que resultaram nessas alocações.

Para obter informações sobre como melhorar o desempenho de coleta de lixo, consulte Noções básicas do coletor de lixo e dicas de desempenho no site da Microsoft.Para obter informações sobre a sobrecarga de coleta de lixo automática, consulte Revelada de Heap de objeto grande.