<gcServer> 要素

共通言語ランタイムがサーバーのガベージ コレクションを実行するかどうかを指定します。

<configuration>
  <runtime>
    <gcServer>

構文

<gcServer
   enabled="true|false"/>

属性と要素

以降のセクションでは、属性、子要素、および親要素について説明します。

属性

属性 説明
enabled 必須の属性です。

ランタイムがサーバーのガベージ コレクションを実行するかどうかを指定します。

enabled 属性

[値] 説明
false サーバーのガベージ コレクションを実行しません。 既定値です。
true サーバーのガベージ コレクションを実行します。

子要素

なし。

親要素

要素 説明
configuration 共通言語ランタイムおよび .NET Framework アプリケーションで使用されるすべての構成ファイルのルート要素です。
runtime アセンブリのバインディングとガベージ コレクションに関する情報が含まれています。

解説

共通言語ランタイム (CLR) は、2 種類のガベージ コレクションをサポートしています。1 つはワークステーション ガベージ コレクションで、すべてのシステムで使用できるものです。もう 1 つはサーバー ガベージ コレクションで、マルチプロセッサ システムで使用できるものです。 gcServer 要素を使用して、CLR によって実行されるガベージ コレクションの種類を制御します。 GCSettings.IsServerGC プロパティを使用して、サーバー ガベージ コレクションが有効かどうかを決定します。

シングル プロセッサ コンピューターの場合、既定のワークステーション ガベージ コレクションが催促のオプションです。 2 つのプロセッサを搭載するコンピューターで、ワークステーションかサーバーのいずれかを使用できます。 3 つ以上のプロセッサでは、サーバー ガベージ コレクションが最速のオプションです。 ほとんどの場合、マルチプロセッサ サーバー システムではサーバー GC を無効にし、サーバー アプリの多数のインスタンスが同じコンピューターで実行されるときは、代わりにワークステーション GC を使用します。

この要素は、アプリケーション構成ファイルでのみ使用できます。要素がマシン構成ファイルにある場合には無視されます。

注意

.NET Framework 4 以前のバージョンでは、サーバー ガベージ コレクションを有効にすると同時実行ガベージ コレクションが使用できません。 .NET Framework 4.5 以降では、サーバー ガベージ コレクションは同時実行されるようになりました。 非同時実行サーバー ガベージ コレクションを使用するには、gcServer 要素を true に、gcConcurrent 要素false に設定します。

.NET Framework 4.6.2 以降では、次の要素を使用してサーバー GC を構成することもできます。

  • GCNoAffinitize では、サーバー GC ヒープとプロセッサの間にアフィニティがあるかどうかを指定します。 既定では、プロセッサごとに 1 つのサーバー GC ヒープがあります。

  • GCHeapCount では、プロセスで使用されるヒープの数を制限します。

  • GCHeapAffinitizeMask では、使用可能なサーバー GC ヒープと個々のプロセッサ間のアフィニティを定義します。

サーバー ガベージ コレクションを有効にする方法を次の例に示します。

<configuration>
   <runtime>
      <gcServer enabled="true"/>
   </runtime>
</configuration>

関連項目