指定公共语言运行时是否运行服务器垃圾回收。
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>