分享方式:


<GCHeapCount> 元素

指定要用於伺服器記憶體回收的堆積/執行緒數目。

<設定>
  <執行階段>
    <GCHeapCount>

Syntax

<GCHeapCount
   enabled="nn"/>

屬性和元素

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

屬性

屬性 描述
enabled 必要屬性。

指定要用於伺服器記憶體回收的堆積數目。 實際堆積數目是您指定的堆積數目下限,以及允許處理序使用的處理器數目。

啟用屬性

描述
nn 要用於伺服器 GC 的堆積數目。

子元素

無。

父元素

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

備註

根據預設,伺服器 GC 執行緒會以其各自的 CPU 進行硬式親和化,讓每個處理器有一個 GC 堆積、一個伺服器 GC 執行緒,以及一個背景伺服器 GC 執行緒。 從 .NET Framework 4.6.2 開始,您可以使用GCHeapCount元素來限制應用程式用於伺服器 GC 的堆積數目。 限制用於伺服器 GC 的堆積數目特別適用於執行伺服器應用程式之多個執行個體的系統。

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

如果設定 GCHeapCount 且停用 GCNoAffinitize (其預設設定),則 nn GC 執行緒/堆積與第一個 nn 處理器之間有親和性。 您可以使用 GCHeapAffinitizeMask 元素來指定處理序伺服器 GC 堆積所使用的處理器。 否則,如果系統上執行多個伺服器處理序,其處理器使用方式將會重疊。

如果設定 GCHeapCount 且已啟用 GCNoAffinitize,記憶體回收行程會限制用於伺服器 GC 的處理器數目,但不會將 GC 堆積和處理器親和化。

範例

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

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

下列範例為不將伺服器 GC 執行緒親和化,並將 GC 堆積/執行緒的數目限制為 10。

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

另請參閱