大容量メモリの確保の話
参照: http://d.hatena.ne.jp/ryocotan/20081006/p1, http://d.hatena.ne.jp/ryocotan/20081011/p1
- Windows ってオーバーコミットしなかったような
いずれにせよ、GB 単位のメモリを確保して使うのであれば、同サイズのファイルを作って、CreateFileMapping (mmap) するのがいいんじゃないのかなぁ。そうすれば、ユーザー空間の連続アドレスが確保できれば (64bit なら問題ないし、32bit でも事前にほぼ成否が予測できる)、malloc のように環境によって成否が分かれるとか、OOM killer でいきなり殺されるとかそういうことは起こらない (はず) というのが自分の理解。
*1: (実アドレスの)空きメモリ空間が逼迫してくると swap を拡張する仕組みだし