【问题标题】:Purging numpy.memmap清除 numpy.memmap
【发布时间】:2011-08-26 15:58:33
【问题描述】:

给定一个用mode='r' 创建的numpy.memmap 对象(即只读),有没有办法强制它从物理RAM 中清除所有加载的页面,而不删除对象本身?

换句话说,我希望对memmap 实例的引用保持有效,但用于缓存磁盘数据的所有物理内存都未提交。对memmap 数组的任何视图也必须保持有效。

我希望将其用作诊断工具,以帮助将脚本的“真实”内存需求与使用memmap 引起的“瞬态”需求区分开来。

我在 RedHat 上使用 Python 2.7。

【问题讨论】:

标签: python numpy mmap memory-mapped-files large-data


【解决方案1】:

如果您运行“pmap SCRIPT-PID”,“真实”内存将显示为“[anon]”块,并且所有内存映射文件都会在最后一列中显示文件名。

如果您设法获得指向映射开头的指针并在其上调用 madvise(ptr, length, MADV_DONTNEED),则可以在 C 级别清除页面,但它会很笨拙。

【讨论】:

    猜你喜欢
    • 2014-05-28
    • 2013-10-06
    • 2015-12-14
    • 2014-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 1970-01-01
    相关资源
    最近更新 更多