<GCHeapCount> 元素

指定要用于服务器垃圾回收的堆/线程数。

<配置>
   <运行>
     <GCHeapCount>

Syntax

<GCHeapCount
   enabled="nn"/>

属性和元素

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

特性

Attribute Description
enabled 必需属性。

指定要用于服务器垃圾回收的堆数。 实际堆数是指定的堆数的最小值,并且允许使用进程处理器数。

enabled 属性

价值 Description
nn 要用于服务器 GC 的堆数。

子元素

没有。

父元素

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

注解

默认情况下,服务器 GC 线程与其各自的 CPU 进行硬关联,以便每个处理器有一个 GC 堆、一个服务器 GC 线程和一个后台服务器 GC 线程。 从 .NET Framework 4.6.2 开始,可以使用 GCHeapCount 元素来限制应用程序用于服务器 GC 的堆数。 限制用于服务器 GC 的堆数对于运行服务器应用程序的多个实例的系统尤其有用。

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

如果 GCHeapCount 已设置并 GCNoAffinitize 禁用(其默认设置), 则 nn GC 线程/堆与第一个 nn 处理器之间存在相关性。 可以使用 GCHeapAffinitizeMask 元素来指定进程服务器 GC 堆使用的处理器。 否则,如果多个服务器进程在系统上运行,则其处理器使用情况将重叠。

如果 GCHeapCount 已设置并 GCNoAffinitize 启用,则垃圾回收器会限制用于服务器 GC 的处理器数,但不关联 GC 堆和处理器。

Example

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

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

以下示例不关联服务器 GC 线程,并将 GC 堆/线程数限制为 10。

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

另请参阅