给定用numpy.memmap
创建的mode='r'
对象(即只读),有没有办法强制它从物理RAM中清除所有已加载的页面,而不删除对象本身?
换句话说,我希望memmap
实例的引用保持有效,但是用于缓存磁盘数据的所有物理内存都是未提交的。对memmap
数组的任何视图也必须保持有效。
我希望将其用作诊断工具,以帮助将脚本的“真实”内存要求与使用memmap
引起的“瞬态”要求分开。
我在RedHat上使用Python 2.7。
答案 0 :(得分:2)
如果你运行“pmap SCRIPT-PID”,“真实”内存显示为“[anon]”块,所有内存映射文件都显示在最后一列中的文件名。
如果您设法获得指向映射开头的指针并在其上调用madvise(ptr,length,MADV_DONTNEED),则可以在C级别清除页面,但这将是cludgy。