発生したコレクション
更新 : 2007 年 11 月
ほとんどの場合、コレクションの実行に最適なタイミングはガベージ コレクタが判断できるので、ガベージ コレクタに任せるのが良い方法です。ただし、ごくまれに、強制的にコレクションを実行するとアプリケーションのパフォーマンスが向上する場合があります。このような場合は、Collect メソッドを使用してガベージ コレクションを強制的に実行できます。
アプリケーションのコードの特定の位置で、使用しているメモリ量が大きく減少する場合は、Collect メソッドを使用します。たとえば、複数のコントロールのある複雑なダイアログ ボックスを使用するアプリケーションでは、ダイアログ ボックスを閉じるときに Collect を呼び出すと、メモリが直ちに再利用されてパフォーマンスが向上する可能性があります。効果が小さいのにガベージ コレクタがオブジェクトの再利用を試みるとパフォーマンスが低下する場合があるので、アプリケーションではあまり頻繁にガベージ コレクションを強制しないでください。Optimized モードを使用すると、ガベージ コレクタは、コレクションの効果があるかどうかに基づいて、コレクションを実行するかどうかを判断します。
GC コレクション モード
次の表で説明するように、GCCollectionMode 値を受け取る GC.Collect メソッド オーバーロードを使用して、強制的コレクションの動作を指定できます。
メンバ |
説明 |
---|---|
実行中のバージョンの .NET Framework で既定のガベージ コレクション構成として指定されている設定を使用します。 |
|
直ちにガベージ コレクションを強制的に実行します。これは、GC.Collect() を呼び出すことと同じです。 |
|
オブジェクトを再利用するのに現在が最適なときかどうかをガベージ コレクタが判断できるようにします。 ガベージ コレクタは、コレクションの実行を正当化できるほど効果がないと判断して、オブジェクトを再利用せずに戻る場合があります。 |