<GCHeapCount> , element
Określa liczbę stosów/wątków do użycia na potrzeby odzyskiwania pamięci serwera.
<Konfiguracji>
<Środowiska wykonawczego>
<GCHeapCount>
Składnia
<GCHeapCount
enabled="nn"/>
Atrybuty i elementy
W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne.
Atrybuty
Atrybut | Opis |
---|---|
enabled |
Atrybut wymagany. Określa liczbę stertów do użycia na potrzeby odzyskiwania pamięci serwera. Rzeczywista liczba stertów jest minimalną liczbą stertów, które określisz, a liczba procesorów, z których może korzystać proces. |
włączony atrybut
Wartość | Opis |
---|---|
nn |
Liczba stert do użycia dla serwera GC. |
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 GCHeapCount, aby ograniczyć liczbę stert używanych przez aplikację do odzyskiwania pamięci serwera. Ograniczenie liczby stertów używanych do odzyskiwania pamięci serwera jest szczególnie przydatne w przypadku systemów z wieloma wystąpieniami aplikacji serwera.
GCHeapCount jest zwykle używany wraz z dwoma innymi flagami:
GCNoAffinitize, który kontroluje, czy wątki GC serwera/sterty są affinitized z procesorami CPU.
GCHeapAffinitizeMask, który kontroluje koligację wątków GC/sterty z procesorami CPU.
Jeśli GCHeapCount jest ustawiona i GCNoAffinitize jest wyłączona (jego ustawienie domyślne), istnieje koligacja między wątkami nn GC/sterty i pierwszymi procesorami nn . Za pomocą elementu GCHeapAffinitizeMask można określić, które procesory są używane przez sterty GC serwera procesu. W przeciwnym razie, jeśli w systemie jest uruchomionych wiele procesów serwera, ich użycie procesora nakłada się na siebie.
Jeśli ustawiono GCHeapCount i włączono GCNoAffinitize , moduł odśmiecenia pamięci ogranicza liczbę procesorów używanych dla GC serwera, ale nie affinitize sterty GC i procesorów.
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, należy użyć 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>
W poniższym przykładzie nie jest affinitize wątków GC serwera i ogranicza liczbę sterty GC/wątków do 10.
<configuration>
<runtime>
<gcServer enabled="true"/>
<GCHeapCount enabled="10"/>
<GCNoAffinitize enabled="true"/>
</runtime>
</configuration>