<GCHeapAffinitizeMask> 元素

定义 GC 堆与单个处理器之间的相关性。

<配置>
   <运行>
     <GCHeapAffinitizeMask>

Syntax

<GCHeapAffinitizeMask
   enabled="nnnn"/>

属性和元素

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

特性

Attribute Description
enabled 必需属性。

指定 GC 堆与单个处理器之间的相关性。

enabled 属性

价值 Description
nnnn 形成位掩码的十进制值,用于定义服务器 GC 堆与单个处理器之间的相关性。

子元素

没有。

父元素

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

注解

默认情况下,服务器 GC 线程与其各自的 CPU 进行硬关联,以便每个处理器有一个 GC 堆、一个服务器 GC 线程和一个后台服务器 GC 线程。 从 .NET Framework 4.6.2 开始,当堆数受GCHeapCount元素限制时,可以使用GCHeapAffinitizeMask该元素来控制服务器 GC 堆和处理器之间的相关性。

GCHeapAffinitizeMask 通常与其他两个标志一起使用:

  • GCNoAffinitize,用于控制服务器 GC 线程/堆是否与 CPU 关联。 enabled GCNoAffinitize 元素的属性必须是false要使用的设置(其默认值GCHeapAffinitizeMask)。

  • GCHeapCount,用于限制进程用于服务器 GC 的堆数。 默认情况下,每个处理器都有一个堆。

nn 是 表示为十进制值的位掩码。 字节 0 的位 0 表示处理器 0,字节 0 的位 1 表示处理器 1,依此等。 例如:

<GCHeapAffinitizeMask enabled="1023"/>

值为 1023 0x3FF或 0011 1111 111b。 此过程使用 10 个处理器,从处理器 0 到处理器 9。

Example

以下示例指示应用程序使用服务器 GC 和 10 个堆/线程。 由于不希望这些堆与系统上运行的其他应用程序的堆重叠,因此请使用 GCHeapAffinitizeMask 指定进程应使用 CPU 0 到 9。

<configuration>
   <runtime>
      <gcServer enabled="true"/>
      <GCHeapCount enabled="10"/>
      <GCHeapAffinitizeMask enabled="1023"/>
   </runtime>
</configuration>

另请参阅