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