指定是否将服务器 GC 线程与 CPU 关联。
<配置>
<运行>
<GCNoAffinitize>
Syntax
<GCNoAffinitize
enabled="true|false"/>
属性和元素
下列各节描述了特性、子元素和父元素。
特性
| Attribute | Description |
|---|---|
enabled |
必需属性。 指定服务器 GC 线程/堆是否与计算机上的可用处理器关联。 |
enabled 属性
| 价值 | Description |
|---|---|
false |
将服务器 GC 线程与 CPU 关联。 这是默认情况。 |
true |
不将服务器 GC 线程与 CPU 关联。 |
子元素
没有。
父元素
| 元素 | Description |
|---|---|
configuration |
公共语言运行时和 .NET Framework 应用程序所使用的每个配置文件中的根元素。 |
runtime |
包含有关程序集绑定和垃圾回收的信息。 |
注解
默认情况下,服务器 GC 线程与其各自的 CPU 进行硬关联。 每个系统的可用处理器都有自己的 GC 堆和线程。 这通常是首选设置,因为它优化了缓存使用情况。 从 .NET Framework 4.6.2 开始,通过将元素enabled的属性设置为GCNoAffinitizetrue,可以指定服务器 GC 线程和 CPU 不应紧密耦合。
可以单独指定 GCNoAffinitize 配置元素来不将服务器 GC 线程与 CPU 关联。 还可以将其与 GCHeapCount 元素一起使用,以控制应用程序使用的 GC 堆和线程数。
enabled如果元素的属性GCNoAffinitize是false(其默认值),还可以使用 GCHeapCount 元素指定 GC 线程和堆的数量,以及 GCHeapAffinitizeMask 元素指定 GC 线程和堆关联到的处理器。
Example
以下示例不硬关联服务器 GC 线程:
<configuration>
<runtime>
<gcServer enabled="true"/>
<GCNoAffinitize enabled="true"/>
</runtime>
</configuration>
以下示例不关联服务器 GC 线程,并将 GC 堆/线程数限制为 10:
<configuration>
<runtime>
<gcServer enabled="true"/>
<GCHeapCount enabled="10"/>
<GCNoAffinitize enabled="true"/>
</runtime>
</configuration>