Поделиться через


элемент <GCHeapAffinitizeMask>

Определяет сходство между кучами GC и отдельными процессорами.

<конфигурация>
   <Среды выполнения>
     <GCHeapAffinitizeMask>

Синтаксис

<GCHeapAffinitizeMask
   enabled="nnnn"/>

Атрибуты и элементы

В следующих разделах описаны атрибуты, дочерние и родительские элементы.

Attributes

Свойство Description
enabled Обязательный атрибут.

Указывает сходство между кучами GC и отдельными процессорами.

атрибут включено

Ценность Description
nnnn Десятичное значение, которое формирует битовую маску, определяющую сходство между кучами GC сервера и отдельными процессорами.

Дочерние элементы

Нет.

Родительские элементы

Элемент Description
configuration Корневой элемент в любом файле конфигурации, используемом средой CLR и приложениями .NET Framework.
runtime Содержит сведения о привязке сборки и сборке мусора.

Замечания

По умолчанию потоки GC сервера жестко сопоставлены с соответствующим ЦП, чтобы для каждого процессора существовал один куча GC, один поток GC сервера и один поток фонового сервера GC для каждого процессора. Начиная с .NET Framework 4.6.2, элемент можно использовать GCHeapAffinitizeMask для управления сходством между кучами сервера GC и процессорами, когда количество куч ограничивается элементом GCHeapCount .

GCHeapAffinitizeMask обычно используется вместе с двумя другими флагами:

  • GCNoAffinitize, который определяет, совпадают ли потоки или кучи сервера GC с ЦП. Атрибут enabled элемента GCNoAffinitize должен быть false (значением по умолчанию) для используемого GCHeapAffinitizeMask параметра.

  • GCHeapCount, ограничивающее количество кучи, используемых процессом для серверной сборки данных. По умолчанию для каждого процессора существует одна куча.

nnnn — это битовая маска, выраженная как десятичное значение. Бит 0 байта 0 представляет процессор 0, бит 1 байта 0 представляет процессор 1 и т. д. Рассмотрим пример.

<GCHeapAffinitizeMask enabled="1023"/>

Значение 1023 равно 0x3FF или 0011 1111 111b. В процессе используется 10 процессоров, от процессора от 0 до процессора 9.

Example

В следующем примере указывается, что приложение использует серверную сборку данных с 10 кучами и потоками. Так как вы не хотите, чтобы эти кучы перекрывались с кучами из других приложений, работающих в системе, используйте для GCHeapAffinitizeMask указания того, что процесс должен использовать ЦП 0 до 9.

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

См. также