Partilhar via


elemento <GCHeapCount>

Especifica o número de heaps/threads a usar para a recolha de lixo do servidor.

<Configuração>
   <Duração>
     <GCHeapCount>

Sintaxe

<GCHeapCount
   enabled="nn"/>

Atributos e elementos

As seções a seguir descrevem atributos, elementos filho e elementos pai.

Attributes

Attribute Description
enabled Atributo obrigatório.

Especifica o número de heaps a usar para a recolha de lixo do servidor. O número real de heaps é o mínimo entre o número de heaps que especifica e o número de processadores que o seu processo pode usar.

atributo habilitado

Valor Description
nn O número de heaps a usar para o GC do servidor.

Elementos filho

Nenhum.

Elementos pai

Elemento Description
configuration O elemento raiz em cada arquivo de configuração usado pelo Common Language Runtime e aplicativos .NET Framework.
runtime Contém informações sobre encadernação de montagem e recolha de lixo.

Observações

Por defeito, os threads GC do servidor são afinizados de forma rígida com o respetivo CPU, de modo que existe um heap GC, um thread GC de servidor e um thread GC de servidor em segundo plano para cada processador. A partir do .NET Framework 4.6.2, podes usar o GCHeapCount elemento para limitar o número de heaps usados pela tua aplicação para GC de servidor. Limitar o número de heaps usados para GC de servidor é particularmente útil para sistemas que executam múltiplas instâncias de uma aplicação servidor.

O GCHeapCount é normalmente usado juntamente com outros dois flags:

  • GCNoAffinitize, que controla se os threads/heaps de GC do servidor são affinizados com CPUs.

  • GCHeapAffinitizeMask, que controla a afinidade dos threads/heaps GC com CPUs.

Se GCHeapCount estiver definido e GCNoAffinitize desativado (a sua configuração padrão), existe uma afinidade entre os threads/heaps nn GC e os primeiros processadores nn . Pode usar o GCHeapAffinitizeMask elemento para especificar quais os processadores usados pelos heaps GC do servidor do processo. Caso contrário, se vários processos do servidor estiverem a correr num sistema, o uso do processador irá sobrepor-se.

Se GCHeapCount estiver definido e GCNoAffinitize ativado, o coletor de lixo limita o número de processadores usados para GC de servidor, mas não afinitiza os heaps e processadores de GC.

Example

O exemplo seguinte indica que uma aplicação usa GC de servidor com 10 heaps/threads. Como não queres que esses heaps se sobreponham com heaps de outras aplicações a correr no sistema, usas o GCHeapAffinitizeMask para especificar que o processo deve usar CPUs 0 a 9.

<configuration>
   <runtime>
      <gcServer enabled="true"/>
      <GCHeapCount enabled="10"/>
      <GCHeapAffinitizeMask enabled="1023"/>
   </runtime>
</configuration>

O exemplo seguinte não afinitiza threads GC de servidor e limita o número de heaps/threads GC a 10.

<configuration>
   <runtime>
      <gcServer enabled="true"/>
      <GCHeapCount enabled="10"/>
      <GCNoAffinitize enabled="true"/>
   </runtime>
</configuration>

Consulte também