指定通用語言執行時是否執行伺服器垃圾回收。
語法
<gcServer
enabled="true|false"/>
屬性和元素
下列章節說明屬性、子元素和父元素。
Attributes
| Attribute | Description |
|---|---|
enabled |
必要屬性。 指定執行時是否執行伺服器垃圾回收。 |
啟用屬性
| 價值觀 | Description |
|---|---|
false |
不會執行伺服器垃圾回收。 這是預設值。 |
true |
執行伺服器垃圾回收。 |
子專案
沒有。
父元素
| 元素 | Description |
|---|---|
configuration |
通用語言執行平台和 .NET Framework 應用程式所使用之每個組態檔中的根項目。 |
runtime |
包含關於組裝裝訂與垃圾回收的資訊。 |
備註
通用語言執行時(CLR)支援兩種類型的垃圾回收:工作站垃圾回收,適用於所有系統,以及伺服器垃圾回收,適用於多處理器系統。 利用該 gcServer 元素來控制 CLR 執行的垃圾回收類型。 使用該 GCSettings.IsServerGC 屬性來判斷伺服器垃圾回收是否已啟用。
對於單處理器電腦,預設的工作站垃圾回收應該是最快的選擇。 雙處理器電腦可使用工作站或伺服器。 伺服器垃圾回收應該是超過兩台處理器最快的選擇。 最常見的是,當多個伺服器應用程式在同一台機器上執行時,多處理器伺服器系統會停用伺服器 GC,改用工作站 GC。
此元素只能用於應用程式設定檔;如果它在機器設定檔中,則會被忽略。
備註
在 .NET Framework 4 及更早版本中,啟用伺服器垃圾回收時,無法同時進行垃圾回收。 從 .NET Framework 4.5 開始,伺服器垃圾回收是並行的。 若要使用非並行伺服器垃圾回收,將元素true設gcServer為 ,gcConcurrent 元素設為 false。
從 .NET Framework 4.6.2 開始,你也可以使用以下元素來配置伺服器 GC:
GCNoAffinitize,該指令指定伺服器 GC 堆積與處理器之間是否存在親和力。 預設情況下,每個處理器有一個伺服器 GC 堆積。
GCHeapCount,限制程序使用的堆積數量。
GCHeapAffinitizeMask,定義可用伺服器 GC 堆積與個別處理器之間的親和力。
Example
以下範例可啟用伺服器垃圾回收:
<configuration>
<runtime>
<gcServer enabled="true"/>
</runtime>
</configuration>