<GCHeapAffinitizeMask> , element

Definiuje koligację między stertami GC i poszczególnymi procesorami.

<Konfiguracji>
  <Środowiska wykonawczego>
    <GCHeapAffinitizeMask>

Składnia

<GCHeapAffinitizeMask
   enabled="nnnn"/>

Atrybuty i elementy

W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne.

Atrybuty

Atrybut Opis
enabled Atrybut wymagany.

Określa koligację między stertami GC i poszczególnymi procesorami.

włączony atrybut

Wartość Opis
nnnn Wartość dziesiętna, która tworzy maskę bitową definiującą koligację między stertami GC serwera i poszczególnymi procesorami.

Elementy podrzędne

Brak.

Elementy nadrzędne

Element Opis
configuration Element główny w każdym pliku konfiguracji używanym przez środowisko uruchomieniowe języka wspólnego i aplikacje programu .NET Framework.
runtime Zawiera informacje dotyczące powiązania zestawu oraz wyrzucania elementów bezużytecznych.

Uwagi

Domyślnie wątki GC serwera są trwale skomunikowane z odpowiednim procesorem, dzięki czemu istnieje jeden stertę GC, jeden wątek GC serwera i jeden wątek GC serwera w tle dla każdego procesora. Począwszy od .NET Framework 4.6.2, można użyć elementu GCHeapAffinitizeMask, aby kontrolować koligację między stertami GC serwera i procesorami, gdy liczba sterty jest ograniczona przez element GCHeapCount.

GCHeapAffinitizeMask jest zwykle używany wraz z dwoma innymi flagami:

  • GCNoAffinitize, który kontroluje, czy wątki GC serwera/sterty są affinitized z procesorami CPU. Atrybut enabled elementu GCNoAffinitize musi być false (jego wartość domyślna) dla ustawienia GCHeapAffinitizeMask do użycia.

  • GCHeapCount, który ogranicza liczbę stertów używanych przez proces dla GC serwera. Domyślnie każdy procesor ma jedną stertę.

nnnn to maska bitowa wyrażona jako wartość dziesiętna. Bit 0 bajtu 0 reprezentuje procesor 0, bit 1 bajtu 0 reprezentuje procesor 1 itd. Na przykład:

<GCHeapAffinitizeMask enabled="1023"/>

Wartość 1023 jest 0x3FF lub 0011 1111 1111b. Proces używa 10 procesorów z procesora od 0 do procesora 9.

Przykład

Poniższy przykład wskazuje, że aplikacja używa GC serwera z 10 stertami/wątkami. Ponieważ nie chcesz, aby te sterty nakładały się na sterty z innych aplikacji uruchomionych w systemie, użyj GCHeapAffinitizeMask , aby określić, że proces powinien używać procesorów CPU od 0 do 9.

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

Zobacz też