<gcServer> 元素
指定 Common Language Runtime 是否執行伺服器記憶體回收。
Syntax
<gcServer
enabled="true|false"/>
屬性和元素
下列章節說明屬性、子元素和父元素。
屬性
屬性 | 描述 |
---|---|
enabled |
必要屬性。 指定執行階段是否執行伺服器記憶體回收。 |
啟用屬性
值 | 描述 |
---|---|
false |
不執行伺服器記憶體回收。 此為預設值。 |
true |
執行伺服器記憶體回收。 |
子元素
無。
父元素
元素 | Description |
---|---|
configuration |
通用語言執行平台和 .NET Framework 應用程式所使用之每個組態檔中的根項目。 |
runtime |
包含有關組件繫結和記憶體回收的資訊。 |
備註
Common Language Runtime (CLR) 支援兩種類型的記憶體回收:工作站記憶體回收 (可用於所有系統),以及伺服器記憶體回收 (可用於多處理器系統)。 您可以使用 gcServer 元素來控制 CLR 執行的記憶體回收類型。 使用 GCSettings.IsServerGC 屬性來決定是否啟用伺服器記憶體回收。
針對單一處理器電腦,預設的工作站記憶體回收應該是最快的選項。 無論是工作站或伺服器,都可以用於兩個處理器的電腦。 針對兩個以上的處理器,伺服器記憶體回收應該是最快的選項。 最常見的情況是,多處理器伺服器系統會停用伺服器 GC,並在相同機器執行許多伺服器應用程式的執行個體時,改用工作站 GC。
此項目只能用在應用程式組態檔中;如果是在或電腦組態檔中,就會忽略此項目。
注意
在 .NET Framework 4 (含) 以前版本中,當伺服器記憶體回收啟用時,無法使用並行記憶體回收。 從 .NET Framework 4.5 開始,伺服器垃圾收集是並行的。 若要使用非並行伺服器記憶體回收,請將 gcServer 元素設定為 true
,並將 gcConcurrent element 元素設定為 false
。
從 .NET Framework 4.6.2 開始,您也可以使用下列元素來設定伺服器 GC:
GCNoAffinitize 指定伺服器 GC 堆積與處理器之間是否有親和性。 根據預設,每個處理器都有一個伺服器 GC 堆積。
GCHeapCount,其會限制流程所使用的堆積數目。
GCHeapAffinitizeMask,定義可用伺服器 GC 堆積與個別處理器之間的親和性。
範例
下列範例會啟用伺服器記憶體回收:
<configuration>
<runtime>
<gcServer enabled="true"/>
</runtime>
</configuration>