近代的なOSの多くは仮想記憶をサポートしています。
仮想記憶領域としてHDDを使っている場合、空きメモリ無しになるのはHDDがフルになる時の筈なので、ヒープ・メモリの獲得に失敗することはまずないように思います。
以前、Windows 7上のプログラムでメモリ不足のテストをしようとしたのですが、newでどんどんメモリ確保し物理メモリの空きがなくなっているにも関わらず、動作が極端に遅くなるだけで例外が飛んで来ることがありませんでした。仮想記憶が働いてメモリ獲得に失敗しなかったものと思います。
結局、その時はメモリ獲得失敗時のテストは断念しました。
メモリ獲得に失敗した場合にできることはプロセスを落とすくらいしかないとは思いますが、悪さをしないで落ちること、できればメモリ不足で落ちたことの記録が残ることの確認をできるものならしておきたいと感じます。
でも、その程度の確認しかできないと思うので、データベース系のような矛盾が生じるとかなりやばいようなソフトウェアでなければ、多量の工数をかけてまでテストする必要性を感じません。
皆さんはどのようにしてますか?
【追記】
解決済にしましたが、「皆さんはどのようにしてますか?」の部分についてはアンケートですので、よろしかったら他の方からも回答を頂けると幸いです。
ああ、「テストしてないよ」って公の場で発言するのは難しいかもしれないですね。
「メモリ獲得失敗に対応できていること」のテストの意味です。
このテストをしない場合でも、一般にメモリ獲得に失敗しないことはテストしていると思います。
回答2件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2015/11/21 11:09
2015/11/21 11:33
2015/11/21 12:20
2015/11/21 12:33
2015/11/21 12:36
2015/11/21 12:50
2015/11/21 13:04
2015/11/21 13:29
2015/11/21 14:29
2015/11/21 14:48
2015/11/21 14:57
2015/11/21 15:40
2015/11/22 01:14
2015/11/22 03:30