<gcServer> 元素

指定 Common Language Runtime 是否執行伺服器記憶體回收。

<設定>
  <執行階段>
    <gcServer>

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>

另請參閱