メモリリーク
メモリリークのプロセスは、 実行中のプログラムが消費するRAM(ランダムアクセスメモリ)の量が 徐々に増加していく現象です。 通常は、プログラム内のミスによって 使用されていないメモリが解放されないことが原因で発生します。
特に、長時間再起動なしで動作するプログラムにおける メモリリークは危険です。 この場合、時間の経過とともに そのようなプログラムは利用可能なRAMをすべて 使い果たしてしまう可能性があり、 プログラムの異常終了や、さらに悪い場合には 誤動作を引き起こします。
メモリリークを防ぐ方法は以下の通りです:
- ガベージコレクタの使用。これにより未使用メモリは解放されますが、 一方でシステムリソースの一部がその動作に奪われ、 システムの動作が遅延したりフリーズしたりする原因となります。
- 外部プログラムによるプログラムの再起動。 これにより、プログラムの動作終了後に すべてのメモリがシステムに戻され、 リークの規模が小さくなります。
- 動的メモリ割り当ての放棄。 これによりこの種のエラーは排除されますが、 プログラムの機能が制限されます。
- オーナーシップポインタ(所有権ポインタ)の使用。 これにより、ポインタのライフタイムと それが参照するオブジェクトのライフタイムを 調整することができます。 ただし、この方法はオブジェクト間の循環参照には適していません。
関連項目
-
プログラムが実行される期間である
ランタイム、
-
データの場所を示す
ソースデータ、
-
アプリケーションの機能を提供するプログラムの集合体である
ソフトウェア、
-
コンピューターシステムの管理を提供するプログラムの集合体である
オペレーティングシステム、