Modos de latência
Para recuperar objetos, o coletor de lixo deve interromper todos os segmentos em execução do aplicativo.Em algumas situações, sistema autônomo quando um aplicativo recupera sistema autônomo dados ou exibe o conteúdo, um lixo completa coleção pode ocorrer em um momento crítico e impedem o desempenho.Você pode ajustar intrusiveness do coletor de lixo, definindo o LatencyMode propriedade a uma do GCLatencyMode valores.
Latência refere-se a time em que o coletor de lixo intrudes em seu aplicativo.Durante períodos de baixa latência o coletor de lixo é mais conservador e menos intrusivo, na recuperação de objetos.Coletas de geração 2 ocorrerem com freqüência, quais causas menos o aplicativo conjunto de trabalho ao longo do time.sistema autônomo resultado, é recomendável que você use o LowLatency modo somente para o curto período de time quando é necessário. Caso contrário, se o sistema está sob pressão de memória, o coletor de lixo irá disparar uma coleção, que rapidamente pode pausar o aplicativo e interromper uma operação de time crítico.
Você deve usar o modo de latência com aplicativos que incluem um bloco de código que é executado por um breve período de time e deve ser executado com interrupções mínimas de time de execução.Embora o LowLatency modo é projetado para ser usado em cenários em que há algumas restrições de time, ele não se destina a ser uma solução para cenários onde há estritas restrições em time real.
A tabela a seguir lista os cenários de aplicativo que o GCLatencyMode valores são adequados para.
Modo de latência |
Cenários de aplicativos |
---|---|
Para aplicativos que não têm interface de usuário ou as operações de servidor.
|
|
Para a maioria dos aplicativos que têm uma interface de usuário. |
|
Para aplicativos que possuem operações de curto prazo, detecção de time quando as interrupções do coletor de lixo poderiam ser prejudicial.Por exemplo, aplicativos que não animação funções de aquisição de renderização ou dados. |
Lixo coleção modos padrão
Se o LatencyMode propriedade não for especificada, o modo padrão é a estação de trabalho simultâneas lixo coleção. O modo depende do valor de duas definições de configuração de tempo de execução:
-
Se habilitada, essa configuração especifica que o Common linguagem tempo de execução executa a coleta de lixo da estação de trabalho em um thread separado para dar suporte a operações simultâneas.Essa configuração é ativada por padrão.
-
Se habilitada, essa configuração especifica que o common linguagem tempo de execução executa lixo do servidor coleção; caso contrário, ele executa lixo de estação de trabalho coleção.Você pode ativar o servidor lixo coleção somente em computadores com dois ou mais processadores.Ele não está habilitado por padrão.
Se essa configuração estiver habilitada, <gcConcurrent> é automaticamente desabilitado.
sistema autônomo valores padrão de GCLatencyMode são sistema autônomo seguintes:
Interactive Quando <gcConcurrent> está habilitado e <gcServer> está desabilitado.
Batch Quando <gcConcurrent> estiver desabilitado, ou quando ambos <gcConcurrent> e <gcServer> são ativados.
Observação: |
---|
Lixo simultâneo coleção não há suporte para aplicativos executados no WOW64 x86 emulador em sistemas de 64 bit que implementam a arquitetura Intel Itanium (anteriormente chamado IA-64).Para obter mais informações sobre o uso do WOW64 em sistemas Windows de 64 bit, consulte Executando aplicativos de 32 bit . |
Diretrizes para usar baixa latência
Quando você usa LowLatency modo, considere as seguintes diretrizes:
Mantenha o período de time em baixa latência mais breve possível.
Evite alocando altas quantidades de memória durante períodos de baixa latência.Notificações de falta de memória podem ocorrer porque menos objetos recupera a coleta de lixo.
No modo de baixa latência, minimizar o número de alocações de que fazer, em particular alocações até a Large objeto Heap e objetos fixados.
Esteja ciente dos threads que poderiam ser alocando.Porque o LatencyMode configuração da propriedade é todo o processo, você pode gerar um OutOfMemoryException em qualquer segmento que pode ser alocando.
Encapsular o código de baixa latência em regiões de execução restrita (para obter mais informações, consulte Regiões de execução restrita).
Você pode forçar coletas de geração 2 durante um período de latência baixa, chamando o GC.Collect(Int32, GCCollectionMode) método.
Consulte também
Tarefas
Como: Desabilitar lixo simultâneos coleção