ガベージコレクションの限界
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2018/06/03 15:32 UTC 版)
「メモリリーク」の記事における「ガベージコレクションの限界」の解説
ガベージコレクションはどこからも参照されていないメモリ領域を自動的に解放する。しかし、プログラマの意図・把握しないところに参照が残っていると、今後全く利用されないはずのメモリ(オブジェクト)がガベージコレクションによる解放の対象にならず、確保されたままになることがある。これもまたメモリリークの一種であり、最終的にはメモリ不足によりシステムをクラッシュさせる等、上記のような問題と全く同種の問題を引き起こす。この種類のメモリリークに関してガベージコレクションは無力である(なお、これはガベージコレクションの無いシステムでは、メモリ管理的には解放したにもかかわらず、そのメモリ領域を指すポインタが残っている、というようなコードに相当する。そういったポインタの参照は相当に運が良くない限り一般にセグメンテーション違反にはならず、たいていは後から確保され書き込まれた別のデータを読み書きすることになり、デバッグどころか発見すら極度に困難なバグとなるが、それでもガベージコレクションよりはマシである、と信じる向きもある)。
※この「ガベージコレクションの限界」の解説は、「メモリリーク」の解説の一部です。
「ガベージコレクションの限界」を含む「メモリリーク」の記事については、「メモリリーク」の概要を参照ください。
- ガベージコレクションの限界のページへのリンク