次の方法で共有


ガベージ コレクションの強制実行

ガベージ コレクションの GC クラスには、アプリケーションからガベージ コレクタに対してある種の制御を直接実行できるようにする GC.Collect メソッドが用意されています。一般に、プログラマはガベージ コレクションを実行するメソッドの呼び出しは行わないようにして、ガベージ コレクタが自律的に動作するようにします。ほとんどの場合、ガベージ コレクタを使用する方が、コレクションの実行に最適な時点を適切に判断できます。しかし、ごくまれに発生する一定の状況下では、コレクションを強制的に実行することで、アプリケーションのパフォーマンスが向上する可能性があります。アプリケーションのコードの特定の位置で、使用しているメモリ量が大きく減少するような状況では、GC.Collect メソッドの使用が適切である場合もあります。たとえば、あるアプリケーションで、大量のアンマネージ リソースを参照するドキュメントを使用しているとします。このアプリケーションがドキュメントを閉じると、そのドキュメントが使用していたリソースは不要になります。パフォーマンス上の理由から、これらのリソースを一度に解放することが賢明です。詳細については、「Collect メソッド」を参照してください。

ガベージ コレクタは、コレクションを実行する前に、現在実行されているすべてのスレッドを中断します。そのため、GC.Collect を必要以上に頻繁に呼び出すと、パフォーマンスが低下する可能性があります。また、プログラム内で、ユーザーが頻繁に呼び出す可能性のある位置に、GC.Collect を呼び出すコードを置かないように注意する必要もあります。そのような位置にコードを置くと、ガベージ コレクションの最適な実行時期を判断するガベージ コレクタの最適化エンジンの効果は期待できません。

参照

ガベージ コレクションのプログラミング | GC クラス