<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 serfalse
(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>