« こんな夢をみた。 | Main | 論理的HDD掃除。 »

2005年04月22日(金)

またハマリ道。

プログラムの世界ではメモリは必要に応じて確保できるが、不要になったら開放してやる必要がある。これをサボると使われないメモリ領域が段々とメモリを喰い潰して、プログラムの挙動があやしくなったりする。メモリリークと呼ばれるこのトラブルはソースを眺めただけでは中々気がつかない面倒なバグのひとつである。Javaではそういった面倒をさけるため不要となったメモリ領域は自動的に回収される仕組みがある。ガベージコレクションである。プログラマはメモリ管理をあまり気にしなくてもよくなって有難い、という訳である。ところが、自動的というのが曲者。不要になったメモリ領域がどういう訳か自動的に開放されない場合がある。仕方なくメモリ領域が不要かを判断するアルゴリズムを調べて、不要と判定されるように意図的な操作を行う必要があったりする。便利なんだか不便なんだか。Cならfree一発なのになあ。

Posted by awa at 15:02.13
Categories: 雑記