<gcServer> 元素
指定公共语言运行时是否运行服务器垃圾回收。
<configuration>
<runtime>
<gcServer>
语法
<gcServer
enabled="true|false"/>
特性和元素
下列各节描述了特性、子元素和父元素。
特性
属性 | 描述 |
---|---|
enabled |
必需的特性。 指定运行时是否运行服务器垃圾回收。 |
enabled 属性
值 | 说明 |
---|---|
false |
请勿运行服务器垃圾回收。 这是默认值。 |
true |
运行服务器垃圾回收。 |
子元素
无。
父元素
元素 | 说明 |
---|---|
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 堆和单个处理器之间的关联。
示例
下面的示例启用服务器垃圾回收:
<configuration>
<runtime>
<gcServer enabled="true"/>
</runtime>
</configuration>