mallocで1.5GBくらいを作業領域として確保して、100MBくらいの計算結果を
ファイルに出力するPROG1と、その100MBのデータファイルを読み込んで、
1.8GBくらいの作業領域をmallocで確保して、別のデータを作成するPROG2を
合体して一つのPROG3にしました。合体の理由は、100MBのファイル読み書きで
時間が掛かるからです。
合体の方法は、具体的には、1.5GBをmallocして作業して100MBのデータが出来たら、
1.5GBの領域はFreeして、次に、1.8GBをmallocして、その領域を新たな作業領域として
使いながら、先ほどの100MBのデータを処理します。
ところが、PROG3を実行していると、1.8GBのmallocで失敗します。
一回目に1.5GB確保して100MBの計算が終わったら、Freeしていますが、
Windowsタスクマネージャでメモリ使用量を見ていてもFreeしているにもかかわらず、
この時点で、このプロセスは1.5GBくらいメモリを使っています。
Free実行した直後に、メモリ使用量は、急には減らないものなんでしょうか?