<GCHeapAffinitizeMask> 元素

定義 GC 堆積與個別處理器之間的親和性。

<configuration>
  <執行階段>
    <GCHeapAffinitizeMask>

Syntax

<GCHeapAffinitizeMask
   enabled="nnnn"/>

屬性和元素

下列章節說明屬性、子元素和父元素。

屬性

屬性 描述
enabled 必要屬性。

指定 GC 堆積與個別處理器之間的親和性。

啟用屬性

描述
nnnn 形成位元遮罩的十進位值,用於定義伺服器 GC 堆積與個別處理器之間的親和性。

子元素

無。

父元素

元素 Description
configuration 通用語言執行平台和 .NET Framework 應用程式所使用之每個組態檔中的根項目。
runtime 包含有關組件繫結和記憶體回收的資訊。

備註

根據預設,伺服器 GC 執行緒會以其各自的 CPU 進行硬式親和化,讓每個處理器有一個 GC 堆積、一個伺服器 GC 執行緒,以及一個背景伺服器 GC 執行緒。 從 .NET Framework 4.6.2 開始,您可以使用GCHeapAffinitizeMask元素來控制伺服器 GC 堆積與處理器之間的親和性,當堆積數目受限於GCHeapCount元素時。

GCHeapAffinitizeMask 通常會與其他兩個旗標搭配使用:

  • GCNoAffinitize,可控制伺服器 GC 執行緒/堆積是否與 CPU 親和。 GCNoAffinitize 元素的 enabled 屬性必須為 false 其預設值才能使用 GCHeapAffinitizeMask 設定。

  • GCHeapCount,其會限制伺服器 GC 進程所使用的堆積數目。 根據預設,每個處理器都有一個堆積。

nnnn 是以十進位值表示的位元遮罩。 位元組 0 的位 0 代表處理器 0、位元組 0 的位 1 代表處理器 1,依此類推。 例如:

<GCHeapAffinitizeMask enabled="1023"/>

值為 1023 表示 0x3FF 或 0011 1111 1111b。 此流程使用 10 個處理器,從處理器 0 到處理器 9。

範例

下列範例指出應用程式使用伺服器 GC 搭配 10 個堆積/執行緒。 由於您不希望這些堆積與系統執行的其他應用程式的堆積重疊,因此請使用 GCHeapAffinitizeMask 來指定流程應該使用 CPU 0 到 9。

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

另請參閱