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


<Элемент GCHeapCount>

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

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

Синтаксис

<GCHeapCount
   enabled="nn"/>

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

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

Атрибуты

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

Указывает количество кучи, используемых для сборки мусора сервера. Фактическое число кучи — это минимальное количество кучи, указанное вами, и количество процессоров, которые разрешено использовать процессу.

атрибут enabled

Значение Описание
nn Количество кучи, используемых для сборки мусора сервера.

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

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

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

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

Комментарии

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

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

  • GCNoAffinitize, который управляет сопоставлением потоков и кучи сборки мусора сервера с ЦП.

  • GCHeapAffinitizeMask, который управляет сходством потоков и куч сборки мусора с ЦП.

Если задан параметр GCHeapCount и GCNoAffinitize отключен (значение по умолчанию), между потоками и кучами nn GC и первыми процессорами nn существует сходство. Элемент GCHeapAffinitizeMask можно использовать, чтобы указать, какие процессоры используются кучами сборки мусора сервера процесса. В противном случае, если в системе выполняется несколько серверных процессов, их использование процессора будет перекрываться.

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

Пример

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

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

В следующем примере не выполняется сопоставление потоков сборки мусора сервера и ограничивается числом кучи и потоков сборки мусора до 10.

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

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