Partilhar via


<Elemento GCHeapAffinitizeMask>

Define a afinidade entre áreas dinâmicas para dados GC e processadores individuais.

<configuração>
  <runtime>
    <GCHeapAffinitizeMask>

Syntax

<GCHeapAffinitizeMask
   enabled="nnnn"/>

Atributos e elementos

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

Atributos

Atributo Descrição
enabled Atributo obrigatório.

Especifica a afinidade entre áreas dinâmicas para dados GC e processadores individuais.

atributo ativado

Valor Descrição
nnnn Um valor decimal que forma uma máscara de bits que define a afinidade entre áreas dinâmicas para dados GC do servidor e processadores individuais.

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 GCHeapAffinitizeMask para controlar a afinidade entre áreas dinâmicas para dados e processadores GC do servidor quando o número de áreas dinâmicas para dados é limitado pelo elemento GCHeapCount.

GCHeapAffinitizeMask é 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. O enabled atributo do elemento GCNoAffinitize tem de ser false (o valor predefinido) para a definição GCHeapAffinitizeMask a ser utilizada.

  • GCHeapCount, que limita o número de áreas dinâmicas para dados utilizadas pelo processo para o servidor GC. Por predefinição, existe uma área dinâmica para dados para cada processador.

nnnn é uma máscara de bits expressa como um valor decimal. O bit 0 de byte 0 representa o processador 0, o bit 1 de 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, desde o processador 0 até ao processador 9.

Exemplo

O exemplo seguinte indica que uma aplicação utiliza o SERVIDOR GC com 10 áreas dinâmicas/threads. Uma vez que não quer 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 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>

Ver também