<GCNoAffinitize> element

Specifies whether or not to affinitize server GC threads with CPUs.

<configuration>
  <runtime>
    <GCNoAffinitize>

Syntax

<GCNoAffinitize
   enabled="true|false"/>

Attributes and elements

The following sections describe attributes, child elements, and parent elements.

Attributes

Attribute Description
enabled Required attribute.

Specifies whether server GC threads/heaps are affinitized with the processors available on the machine.

enabled attribute

Value Description
false Affinitizes server GC threads with CPUs. This is the default.
true Does not affinitize server GC threads with CPUs.

Child elements

None.

Parent elements

Element Description
configuration The root element in every configuration file used by the common language runtime and .NET Framework applications.
runtime Contains information about assembly binding and garbage collection.

Remarks

By default, server GC threads are hard-affinitized with their respective CPUs. Each of the system's available processors has its own GC heap and thread. This is typically the preferred setting since it optimizes cache usage. Starting with .NET Framework 4.6.2, by setting the GCNoAffinitize element's enabled attribute to true, you can specify that server GC threads and CPUs should not be tightly coupled.

You can specify the GCNoAffinitize configuration element alone to not affinitize server GC threads with CPUs. You can also use it along with the GCHeapCount element to control the number of GC heaps and threads used by an application.

If the enabled attribute of the GCNoAffinitize element is false (its default value), you can also use the GCHeapCount element to specify the number of GC threads and heaps, along with the GCHeapAffinitizeMask element to specify the processors to which the GC threads and heaps are affinitized.

Example

The following example does not hard-affinitize server GC threads:

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

The following example does not affinitize server GC threads and limits the number of GC heaps/threads to 10:

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

See also