指定伺服器垃圾回收所需的堆積/執行緒數量。
<配置>
<運行時間>
<GCHeapCount>
語法
<GCHeapCount
enabled="nn"/>
屬性和元素
下列章節說明屬性、子元素和父元素。
Attributes
| Attribute | Description |
|---|---|
enabled |
必要屬性。 指定用於伺服器垃圾回收的堆積數量。 實際堆積數是你指定的堆數與程序允許使用的處理器數量的最小值。 |
啟用屬性
| 價值觀 | Description |
|---|---|
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,控制 GC 執行緒/堆積與 CPU 的親和力。
如果 GCHeapCount 被設定 GCNoAffinitize 且被禁用(其預設設定),則 nn 的 GC 執行緒/堆積與最初的 nn 處理器之間存在親和力。 你可以用這個 GCHeapAffinitizeMask 元素來指定程序伺服器 GC 堆積使用的處理器。 否則,如果系統上同時運行多個伺服器程序,它們的處理器使用率會重疊。
若 GCHeapCount 設定 且 GCNoAffinitize 啟用,垃圾回收器會限制伺服器 GC 使用的處理器數量,但不會親屬化 GC 堆積與處理器。
Example
以下範例顯示應用程式使用 10 個堆積/執行緒的伺服器 GC。 因為你不希望這些堆積與系統上其他應用程式的堆疊,你用 來 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>