0

numpy.memmapで作成されたオブジェクトmode='r'(つまり、読み取り専用) が与えられた場合、オブジェクト自体を削除せずに、読み込まれたすべてのページを物理 RAM から強制的に削除する方法はありますか?

言い換えれば、memmapインスタンスへの参照は有効のままにしておきたいのですが、ディスク上のデータをキャッシュするために使用されているすべての物理メモリはコミットされないようにします。配列へのすべてのビューmemmapも有効なままにする必要があります。

これを診断ツールとして使用して、スクリプトの「実際の」メモリ要件と、memmap.

RedHat で Python 2.7 を使用しています。

4

1 に答える 1

2

"pmap SCRIPT-PID" を実行すると、"実際の" メモリは "[ anon ]" ブロックとして表示され、すべてのメモリ マップ ファイルは最後の列にファイル名が表示されます。

マッピングの先頭へのポインターを取得し、その上で madvise(ptr, length, MADV_DONTNEED) を呼び出すことができれば、C レベルでページをパージすることは可能ですが、扱いにくくなります。

于 2011-05-16T19:09:25.317 に答える