<gcConcurrent> 要素
共通言語ランタイムがガベージ コレクションを別のスレッドで実行するかどうかを指定します。
<configuration>
<runtime>
<gcConcurrent>
構文
<gcConcurrent
enabled="true|false"/>
属性と要素
以降のセクションでは、属性、子要素、および親要素について説明します。
属性
属性 | 説明 |
---|---|
enabled |
必須の属性です。 ランタイムがガベージ コレクションを並列に実行するかどうかを指定します。 |
enabled 属性
[値] | 説明 |
---|---|
false |
ガベージ コレクションを並列に実行しません。 |
true |
ガベージ コレクションを並列に実行します。 既定値です。 |
子要素
なし。
親要素
要素 | 説明 |
---|---|
configuration |
共通言語ランタイムおよび .NET Framework アプリケーションで使用されるすべての構成ファイルのルート要素です。 |
runtime |
アセンブリのバインディングとガベージ コレクションに関する情報が含まれています。 |
解説
.NET Framework 4 より前の場合、ワークステーション ガベージ コレクションは、同時実行ガベージ コレクションをサポートしており、別個のスレッドでバックグラウンドでガベージ コレクションを実行していました。 .NET Framework 4 では同時実行ガベージ コレクションはバックグラウンド GC に置き換えられており、これも別個のスレッドでバックグラウンドでガベージ コレクションを実行していました。 .NET Framework 4.5 以降では、バックグラウンド コレクションをサーバー ガベージ コレクションで使用できるようになりました。 gcConcurrent 要素は、ランタイムが同時実行ガベージ コレクションを実行するかバックグラウンド ガベージ コレクションを実行するか (使用可能な場合)、またはフォアグラウンドでガベージ コレクションを実行するかどうかを制御します。
バックグラウンド ガベージ コレクションを無効にするには
警告
.NET Framework 4 以降では、同時実行ガベージ コレクションはバックグラウンド ガベージ コレクションに置き換えられています。 "同時実行" と "バックグラウンド" という用語は、.NET Framework ドキュメントでは同義です。 バックグラウンド ガベージ コレクションを無効にするには、この記事で説明するように、gcConcurrent 要素を使用します。
既定では、ランタイムは同時実行ガベージ コレクションまたはバックグラウンド ガベージ コレクションを使用します。これは待機時間について最適化されています。 アプリケーションでユーザーとのやり取りが多い場合は、同時実行ガベージ コレクションを有効にして、ガベージ コレクションを実行するためのアプリケーションの停止時間を最小限に抑えます。 gcConcurrent 要素の enabled
属性を false
に設定すると、ランタイムは非同時実行ガベージ コレクションを使用します。これはスループットについて最適化されています。
次の構成ファイルはバックグラウンド ガベージ コレクションを無効にします。
<configuration>
<runtime>
<gcConcurrent enabled="false"/>
</runtime>
</configuration>
マシン構成ファイルに gcConcurrentSetting 設定が存在する場合、すべての .NET Framework アプリケーションの既定値を定義します。 マシン構成ファイルの設定は、アプリケーション構成ファイルの設定をオーバーライドします。
同時実行ガベージ コレクションとバックグラウンド ガベージ コレクションの詳細については、「バックグラウンド ガベージ コレクション」を参照してください。
例
バックグラウンド ガベージ コレクションを有効にする方法を次の例に示します。
<configuration>
<runtime>
<gcConcurrent enabled="true"/>
</runtime>
</configuration>
関連項目
.NET