<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>