Compartir vía


<Elemento GCHeapAffinitizeMask>

Define la afinidad entre montones de recolección de elementos no utilizados y procesadores individuales.

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

Sintaxis

<GCHeapAffinitizeMask
   enabled="nnnn"/>

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 la afinidad entre montones de GC y procesadores individuales.

Atributo habilitado

Valor Descripción
nnnn Un valor decimal que forma una máscara de bits que define la afinidad entre montones de GC de servidor y procesadores individuales.

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, puedes usar el elemento GCHeapAffinitizeMask para controlar la afinidad entre montones y procesadores de GC del servidor cuando el número de montones está limitado por el elemento GCHeapCount .

GCHeapAffinitizeMaskse 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. El enabled atributo del elemento GCNoAffinitize debe ser false (su valor predeterminado) para el valor GCHeapAffinitizeMask que se va a usar.

  • GCHeapCount, que limita el número de montones usados por el proceso para GC del servidor. De forma predeterminada, hay un montón para cada procesador.

nnnn es una máscara de bits expresada como un valor decimal. El bit 0 del byte 0 representa el procesador 0, el bit 1 del byte 0 representa el procesador 1, etc. Por ejemplo:

<GCHeapAffinitizeMask enabled="1023"/>

Un valor de 1023 es 0x3FF o 0011 1111 1111b. El proceso usa 10 procesadores, del procesador 0 al procesador 9.

Ejemplo

En el ejemplo siguiente se indica que una aplicación usa GC de servidor con 10 montones o subprocesos. Dado que no deseas que esos montones se superpongan con montones de otras aplicaciones que se ejecutan en el sistema, usa 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>

Consulte también