Elemento <GCHeapCount>

Especifica el número de montones o subprocesos que se van a usar para la recolección de elementos no utilizados del servidor.

<configuración>
  <en tiempo de ejecución>
    <GCHeapCount>

Sintaxis

<GCHeapCount
   enabled="nn"/>

Atributos y elementos

En las siguientes secciones se describen los atributos, los elementos secundarios y los elementos primarios.

Atributos

Atributo Descripción
enabled Atributo necesario.

Especifica el número de montones que se van a usar para la recolección de elementos no utilizados del servidor. El número real de montones es el menor del número de montones que especifique y el número de procesadores que puede usar el proceso.

Atributo enabled

Valor Descripción
nn Número de montones que se van a usar para GC de servidor.

Elementos secundarios

Ninguno.

Elementos primarios

Elemento Descripción
configuration Elemento raíz de cada archivo de configuración usado por las aplicaciones de Common Language Runtime y .NET Framework.
runtime Contiene información del enlace del ensamblado y de la recolección de elementos no utilizados.

Comentarios

De forma predeterminada, los subprocesos GC de servidor tienen afinidad con su CPU respectiva para que haya un montón de GC, un subproceso de GC de servidor y un subproceso de GC de servidor en segundo plano para cada procesador. A partir de .NET Framework 4.6.2, puede usar el elemento GCHeapCount para limitar el número de montones que usa la aplicación para GC del servidor. Limitar el número de montones usados para GC de servidor es especialmente útil para los sistemas que ejecutan varias instancias de una aplicación de servidor.

GCHeapCount se usa normalmente junto con otras dos marcas:

  • GCNoAffinitize, que controla si los subprocesos o montones de GC del servidor se adquieren afinidad con las CPU.

  • GCHeapAffinitizeMask, que controla la afinidad de subprocesos o montones de GC con CPU.

Si GCHeapCount se establece y GCNoAffinitize está deshabilitado (su valor predeterminado), hay una afinidad entre los subprocesos o montones de GC nn y los primeros nn procesadores. Puede usar el elemento GCHeapAffinitizeMask para especificar qué procesadores usan los montones de GC del servidor del proceso. De lo contrario, si varios procesos de servidor se ejecutan en un sistema, su uso del procesador se superpondrá.

Si GCHeapCount está establecido y GCNoAffinitize está habilitado, el recolector de elementos no utilizados limita el número de procesadores usados para GC de servidor, pero no establece afinidad con los montones y procesadores de GC.

Ejemplo

En el ejemplo siguiente se indica que una aplicación usa GC de servidor con 10 montones o subprocesos. Dado que no desea que esos montones se superpongan con montones de otras aplicaciones que se ejecutan en el sistema, use GCHeapAffinitizeMask para especificar que el proceso debe usar las CPU de 0 a 9.

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

En el ejemplo siguiente no se genera afinidad con los subprocesos de GC del servidor y se limita el número de montones o subprocesos de GC a 10.

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

Consulte también