共通言語ランタイムがサーバー ガベージ コレクションを実行するかどうかを指定します。
構文
<gcServer
enabled="true|false"/>
属性と要素
以降のセクションでは、属性、子要素、および親要素について説明します。
Attributes
| 特性 | Description |
|---|---|
enabled |
必須の属性。 ランタイムがサーバー ガベージ コレクションを実行するかどうかを指定します。 |
enabled 属性
| 価値 | Description |
|---|---|
false |
サーバー ガベージ コレクションを実行しません。 これが既定値です。 |
true |
サーバー ガベージ コレクションを実行します。 |
子要素
なし。
親要素
| 要素 | Description |
|---|---|
configuration |
共通言語ランタイムおよび .NET Framework アプリケーションで使用されるすべての構成ファイルのルート要素です。 |
runtime |
アセンブリ バインドとガベージ コレクションに関する情報が含まれています。 |
注釈
共通言語ランタイム (CLR) では、ワークステーション ガベージ コレクション (すべてのシステムで使用可能) と、マルチプロセッサ システムで使用できるサーバー ガベージ コレクションの 2 種類がサポートされています。 clr が実行するガベージ コレクションの種類を制御するには、 gcServer 要素を使用します。
GCSettings.IsServerGC プロパティを使用して、サーバー ガベージ コレクションが有効になっているかどうかを判断します。
単一プロセッサ コンピューターの場合、既定のワークステーション ガベージ コレクションが最速のオプションである必要があります。 ワークステーションまたはサーバーは、2 プロセッサ コンピューターに使用できます。 サーバー ガベージ コレクションは、2 つ以上のプロセッサで最も高速なオプションである必要があります。 多くの場合、マルチプロセッサ サーバー システムでは、サーバー アプリの多くのインスタンスが同じコンピューター上で実行されている場合に、サーバー 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 ヒープと個々のプロセッサの間のアフィニティを定義します。
Example
次の例では、サーバー ガベージ コレクションを有効にします。
<configuration>
<runtime>
<gcServer enabled="true"/>
</runtime>
</configuration>
こちらも参照ください
.NET