<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 を使用します。
この要素は、アプリケーション構成ファイルでのみ使用できます。要素がマシン構成ファイルにある場合には無視されます。
Note
.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>
関連項目
.NET