Partilhar via


<Elemento GCHeapCount>

Especifica o número de áreas dinâmicas/threads a utilizar para a libertação da memória do servidor.

<configuração>
  <runtime>
    <GCHeapCount>

Syntax

<GCHeapCount
   enabled="nn"/>

Atributos e elementos

As secções seguintes descrevem atributos, elementos subordinados e elementos principais.

Atributos

Atributo Descrição
enabled Atributo obrigatório.

Especifica o número de áreas dinâmicas para dados a utilizar para a libertação da memória do servidor. O número real de áreas dinâmicas para dados é o mínimo do número de áreas dinâmicas para dados que especificar e o número de processadores que o seu processo pode utilizar.

atributo ativado

Valor Descrição
nn O número de áreas dinâmicas para dados a utilizar para o servidor GC.

Elementos subordinados

Nenhum.

Elementos principais

Elemento Descrição
configuration O elemento raiz em cada ficheiro de configuração utilizado pelo runtime de linguagem comum e .NET Framework aplicações.
runtime Contém informações sobre o enlace de montagem e a libertação da memória.

Observações

Por predefinição, os threads gc do servidor são hard-affinitized com a respetiva CPU para que exista uma área dinâmica para dados 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, pode utilizar o elemento GCHeapCount para limitar o número de áreas dinâmicas para dados utilizadas pela sua aplicação para o servidor GC. A limitação do número de áreas dinâmicas para dados utilizadas para o SERVIDOR GC é particularmente útil para sistemas que executam várias instâncias de uma aplicação de servidor.

O GCHeapCount é normalmente utilizado juntamente com outros dois sinalizadores:

  • GCNoAffinitize, que controla se os threads/áreas dinâmicas para dados gc do servidor são afinizados com CPUs.

  • GCHeapAffinitizeMask, que controla a afinidade de threads/áreas dinâmicas para dados GC com CPUs.

Se GCHeapCount estiver definido e GCNoAffinitize estiver desativado (a predefinição), existe uma afinidade entre os threads/áreas dinâmicas para dados nn e os primeiros processadores nn . Pode utilizar o elemento GCHeapAffinitizeMask para especificar que processadores são utilizados pelas áreas dinâmicas para dados GC do servidor do processo. Caso contrário, se vários processos de servidor estiverem em execução num sistema, a utilização do processador será sobreposta.

Se GCHeapCount estiver definido e GCNoAffinitize estiver ativado, o recoletor de lixo limita o número de processadores utilizados para o GC do servidor, mas não afiniza as áreas dinâmicas para dados e processadores gc.

Exemplo

O exemplo seguinte indica que uma aplicação utiliza o SERVIDOR GC com 10 áreas dinâmicas/threads. Uma vez que não pretende que essas áreas dinâmicas para dados se sobreponham a áreas dinâmicas para dados de outras aplicações em execução no sistema, utilize o GCHeapAffinitizeMask para especificar que o processo deve utilizar CPUs 0 a 9.

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

O exemplo seguinte não afiniza os threads gc do servidor e limita o número de áreas dinâmicas/threads gc para 10.

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

Ver também