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