Partilhar via


elemento <GCHeapAffinitizeMask>

Define a afinidade entre heaps GC e processadores individuais.

<Configuração>
   <Duração>
     <GCHeapAffinitizeMask>

Sintaxe

<GCHeapAffinitizeMask
   enabled="nnnn"/>

Atributos e elementos

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

Attributes

Attribute Description
enabled Atributo obrigatório.

Especifica a afinidade entre heaps GC e processadores individuais.

atributo habilitado

Valor Description
nnnn Um valor decimal que forma uma máscara de bits que define a afinidade entre os heaps GC do servidor e os processadores individuais.

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, pode usar o GCHeapAffinitizeMask elemento para controlar a afinidade entre heaps GC do servidor e processadores quando o número de heaps está limitado pelo GCHeapCount elemento.

GCHeapAffinitizeMask é normalmente usado juntamente com outros dois flags:

  • GCNoAffinitize, que controla se os threads/heaps de GC do servidor são affinizados com CPUs. O enabled atributo do elemento GCNoAffinitize deve ser false (o seu valor padrão) para que a GCHeapAffinitizeMask configuração a ser usada.

  • GCHeapCount, que limita o número de heaps usados pelo processo para o servidor GC. Por defeito, existe um heap para cada processador.

Nnnn é uma máscara de bits expressa como um valor decimal. O bit 0 do byte 0 representa o processador 0, o bit 1 do byte 0 representa o processador 1, e assim sucessivamente. Por exemplo:

<GCHeapAffinitizeMask enabled="1023"/>

Um valor de 1023 é 0x3FF ou 0011 1111 1111b. O processo utiliza 10 processadores, do processador 0 ao processador 9.

Example

O exemplo seguinte indica que uma aplicação usa GC de servidor com 10 heaps/threads. Como não quer que esses heaps se sobreponham com heaps de outras aplicações a correr no sistema, use 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>

Consulte também