Condividi tramite


<Elemento GCHeapAffinitizeMask>

Definisce l'affinità tra heap GC e singoli processori.

<configurazione>
  <runtime>
    <GCHeapAffinitizeMask>

Sintassi

<GCHeapAffinitizeMask
   enabled="nnnn"/>

Attributi ed elementi

Nelle sezioni seguenti vengono descritti gli attributi, gli elementi figlio e gli elementi padre.

Attributi

Attributo Descrizione
enabled Attributo obbligatorio.

Specifica l'affinità tra heap GC e singoli processori.

Attributo abilitato

Valore Descrizione
nnnn Valore decimale che forma una maschera di bit che definisce l'affinità tra heap del server GC e singoli processori.

Elementi figlio

Nessuno.

Elementi padre

Elemento Descrizione
configuration Elemento radice in ciascun file di configurazione usato in Common Language Runtime e nelle applicazioni .NET Framework.
runtime Contiene informazioni sull'associazione degli assembly e sull'operazione di Garbage Collection.

Commenti

Per impostazione predefinita, i thread GC del server sono affini con la rispettiva CPU in modo che sia presente un heap GC, un thread GC del server e un thread GC del server in background per ogni processore. A partire da .NET Framework 4.6.2, è possibile usare l'elemento GCHeapAffinitizeMask per controllare l'affinità tra heap server GC e processori quando il numero di heap è limitato dall'elemento GCHeapCount .

GCHeapAffinitizeMask viene in genere usato insieme ad altri due flag:

  • GCNoAffinitize, che controlla se i thread/heap del server sono affini con le CPU. L'attributo enabled dell'elemento GCNoAffinitize deve essere false (valore predefinito) per l'impostazione GCHeapAffinitizeMask da utilizzare.

  • GCHeapCount, che limita il numero di heap utilizzati dal processo per il server GC. Per impostazione predefinita, è presente un heap per ogni processore.

nnnn è una maschera di bit espressa come valore decimale. Bit 0 di byte 0 rappresenta il processore 0, bit 1 di byte 0 rappresenta il processore 1 e così via. Ad esempio:

<GCHeapAffinitizeMask enabled="1023"/>

Il valore 1023 è 0x3FF o 0011 1111 1111b. Il processo usa 10 processori, dal processore 0 al processore 9.

Esempio

L'esempio seguente indica che un'applicazione usa il server GC con 10 heap/thread. Poiché non si vuole che tali heap si sovrappongano agli heap di altre applicazioni in esecuzione nel sistema, usare GCHeapAffinitizeMask per specificare che il processo deve usare CPU da 0 a 9.

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

Vedi anche