2017年5月24日水曜日

使わなくなったメモリを開放してはならない

ヒープから割り当てたメモリが不要になってもそのままにしておくとメモリが不足する可能性がある。(メモリリーク) 最近のPCだとギガバイト単位のメモリ積んでるから、サイズの大きな画像とかなら兎も角、数百~数キロバイト単位のメモリを数百個程度割り当てっ放しにしたとしても何の問題も起きないかも知れない。

組み込み用途でメモリが小さい場合は注意が必要。
そのような用途向けでは、メモリ管理のリスクを避けるためにそもそもヒープの使用が禁止されているケースも多い。 しかし、逆に少ないメモリを慎重に使い廻すことで搭載しているメモリ以上の機能を動かすこともできる。 問題なのは、「メモリを開放しましょう」というルール。結論から言えばこれは誤字で「解放」と書くべき。 些細な言葉の問題と捉えてはならない。「開放」と「解放」では大きく意味が異なる。

開放(open):もうこの領域は使わなくなったから、どうぞ皆さん自由に読み書きしてください。
まあそんなことしたら、データは壊れるは、ポインタは変な場所指すわで信頼性の低いプログラムになる。 テストしたときは何でもなかったのに、市場にでたら「ブルースクリーン」が出てしまうOSみたいになっちゃうでしょ。

解放(free, release):占有していた領域をメモリ管理の仕組みに返還しますから、どうぞ欲しい人のために再利用してください。

ネット検索で見つけたものに限らず、何千円もする書籍でも「開放」と書いてある文章が大変多い。 多くは誤変換だと思いますが、中には区別してないんじゃないと思わせるような「1ページ全部が開放になっている」ものも少なくありません。

社内で見かけたら都度、呼び止めて注意する。 減給まではしないが、書き直しを命じる事になる。

0 件のコメント:

コメントを投稿