Sdílet prostřednictvím


<GCHeapAffinitizeMask> – element

Definuje spřažení mezi GC heaps a jednotlivými procesory.

<Konfigurace>
  <Runtime>
    <GCHeapAffinitizeMask>

Syntax

<GCHeapAffinitizeMask
   enabled="nnnn"/>

Atributy a prvky

Následující části popisují atributy, podřízené prvky a nadřazené prvky.

Atributy

Atribut Popis
enabled Požadovaný atribut.

Určuje spřažení mezi GC heaps a jednotlivými procesory.

atribut enabled

Hodnota Popis
nnnn Desetinná hodnota, která tvoří bitovou masku definující spřažení mezi GC serveru a jednotlivými procesory.

Podřízené prvky

Žádné

Nadřazené prvky

Element Popis
configuration Kořenový prvek v každém konfiguračním souboru, který je používán modulem Common Language Runtime (CLR) a aplikacemi rozhraní .NET Framework.
runtime Obsahuje informace o vazbách sestavení a uvolnění paměti.

Poznámky

Ve výchozím nastavení jsou vlákna uvolňování paměti serveru pevně spřažení s příslušným procesorem, takže pro každý procesor existuje jedna halda uvolňování paměti, jedno vlákno uvolňování paměti serveru a jedno vlákno uvolňování paměti serveru na pozadí. Počínaje rozhraním .NET Framework 4.6.2 můžete použít element GCHeapAffinitizeMask k řízení spřažení mezi serverovými haldami uvolňování paměti a procesory, pokud je počet hald omezen elementem GCHeapCount .

GCHeapAffinitizeMask se obvykle používá spolu se dvěma dalšími příznaky:

  • GCNoAffinitize, která určuje, zda jsou vlákna nebo hepky uvolňování paměti serveru spřaženy s procesory. Atribut enabledGCNoAffinitize elementu musí být false (jeho výchozí hodnota) pro nastavení GCHeapAffinitizeMask použít.

  • GCHeapCount, který omezuje počet hald používaných procesem pro uvolňování paměti serveru. Ve výchozím nastavení je pro každý procesor jedna halda.

nnnn je bitová maska vyjádřená jako desetinná hodnota. Bit 0 bajtu 0 představuje procesor 0, bit 1 bajtu 0 představuje procesor 1 atd. Příklad:

<GCHeapAffinitizeMask enabled="1023"/>

Hodnota 1023 je 0x3FF nebo 0011 1111 1111b. Proces používá 10 procesorů, od procesoru 0 do procesoru 9.

Příklad

Následující příklad označuje, že aplikace používá uvolňování paměti serveru s 10 heaps/threads. Vzhledem k tomu, že nechcete, aby se tyto haldy překrývaly s haldami z jiných aplikací spuštěných v systému, použijte GCHeapAffinitizeMask a určete, že proces má používat procesory 0 až 9.

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

Viz také