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


<Элемент GCHeapAffinitizeMask>

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

<configuration>
  <среда выполнения>
    <GCHeapAffinitizeMask>

Синтаксис

<GCHeapAffinitizeMask
   enabled="nnnn"/>

Элементы и атрибуты

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

Атрибуты

Атрибут Описание
enabled Обязательный атрибут.

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

атрибут enabled

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

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

Отсутствует.

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

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

Комментарии

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

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

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

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

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

<GCHeapAffinitizeMask enabled="1023"/>

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

Пример

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

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

См. также раздел