<gcServer> 元素

指定公共语言运行时是否运行服务器垃圾回收。

<配置>
   <运行>
     <gcServer>

Syntax

<gcServer
   enabled="true|false"/>

属性和元素

下列各节描述了特性、子元素和父元素。

特性

Attribute Description
enabled 必需属性。

指定运行时是否运行服务器垃圾回收。

enabled 属性

价值 Description
false 不运行服务器垃圾回收。 这是默认情况。
true 运行服务器垃圾回收。

子元素

没有。

父元素

元素 Description
configuration 公共语言运行时和 .NET Framework 应用程序所使用的每个配置文件中的根元素。
runtime 包含有关程序集绑定和垃圾回收的信息。

注解

公共语言运行时(CLR)支持两种类型的垃圾回收:工作站垃圾回收,在所有系统上都可用,以及多处理器系统上可用的服务器垃圾回收。 使用 gcServer 元素控制 CLR 执行的垃圾回收类型。 使用该 GCSettings.IsServerGC 属性确定是否启用了服务器垃圾回收。

对于单处理器计算机,默认工作站垃圾回收应该是最快的选项。 工作站或服务器可用于双处理器计算机。 对于两个以上的处理器,服务器垃圾回收应该是最快的选项。 大多数情况下,多处理器服务器系统禁用服务器 GC 并使用工作站 GC,而不是在同一台计算机上运行服务器应用的许多实例。

此元素只能在应用程序配置文件中使用;如果它位于计算机配置文件中,则忽略它。

注释

在 .NET Framework 4 及更早版本中,启用服务器垃圾回收时,并发垃圾回收不可用。 从 .NET Framework 4.5 开始,服务器垃圾回收是并发的。 若要使用非并发服务器垃圾回收,请将gcServer元素true设置为 gcConcurrent 元素false

从 .NET Framework 4.6.2 开始,还可以使用以下元素配置服务器 GC:

  • GCNoAffinitize,指定服务器 GC 堆和处理器之间是否存在相关性。 默认情况下,每个处理器都有一个服务器 GC 堆。

  • GCHeapCount,用于限制进程使用的堆数。

  • GCHeapAffinitizeMask,用于定义可用服务器 GC 堆与单个处理器之间的相关性。

Example

以下示例启用服务器垃圾回收:

<configuration>
   <runtime>
      <gcServer enabled="true"/>
   </runtime>
</configuration>

另请参阅