<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>