<GCHeapCount> 元素
指定要用於伺服器記憶體回收的堆積/執行緒數目。
<設定>
<執行階段>
<GCHeapCount>
Syntax
<GCHeapCount
enabled="nn"/>
屬性和元素
下列章節說明屬性、子元素和父元素。
屬性
屬性 | 描述 |
---|---|
enabled |
必要屬性。 指定要用於伺服器記憶體回收的堆積數目。 實際堆積數目是您指定的堆積數目下限,以及允許處理序使用的處理器數目。 |
啟用屬性
值 | 描述 |
---|---|
nn |
要用於伺服器 GC 的堆積數目。 |
子元素
無。
父元素
元素 | Description |
---|---|
configuration |
通用語言執行平台和 .NET Framework 應用程式所使用之每個組態檔中的根項目。 |
runtime |
包含有關組件繫結和記憶體回收的資訊。 |
備註
根據預設,伺服器 GC 執行緒會以其各自的 CPU 進行硬式親和化,讓每個處理器有一個 GC 堆積、一個伺服器 GC 執行緒,以及一個背景伺服器 GC 執行緒。 從 .NET Framework 4.6.2 開始,您可以使用GCHeapCount元素來限制應用程式用於伺服器 GC 的堆積數目。 限制用於伺服器 GC 的堆積數目特別適用於執行伺服器應用程式之多個執行個體的系統。
GCHeapCount 通常會與其他兩個旗標搭配使用:
GCNoAffinitize,可控制伺服器 GC 執行緒/堆積是否與 CPU 親和。
GCHeapAffinitizeMask,可控制具有 CPU 的 GC 執行緒/堆積親和性。
如果設定 GCHeapCount 且停用 GCNoAffinitize (其預設設定),則 nn GC 執行緒/堆積與第一個 nn 處理器之間有親和性。 您可以使用 GCHeapAffinitizeMask 元素來指定處理序伺服器 GC 堆積所使用的處理器。 否則,如果系統上執行多個伺服器處理序,其處理器使用方式將會重疊。
如果設定 GCHeapCount 且已啟用 GCNoAffinitize,記憶體回收行程會限制用於伺服器 GC 的處理器數目,但不會將 GC 堆積和處理器親和化。
範例
下列範例指出應用程式使用伺服器 GC 搭配 10 個堆積/執行緒。 由於您不希望這些堆積與系統執行的其他應用程式的堆積重疊,請使用 GCHeapAffinitizeMask 來指定處理序應該使用 CPU 0 到 9。
<configuration>
<runtime>
<gcServer enabled="true"/>
<GCHeapCount enabled="10"/>
<GCHeapAffinitizeMask enabled="1023"/>
</runtime>
</configuration>
下列範例為不將伺服器 GC 執行緒親和化,並將 GC 堆積/執行緒的數目限制為 10。
<configuration>
<runtime>
<gcServer enabled="true"/>
<GCHeapCount enabled="10"/>
<GCNoAffinitize enabled="true"/>
</runtime>
</configuration>