代码之家  ›  专栏  ›  技术社区  ›  Suma

如何取消文件映射页的提交?

  •  2
  • Suma  · 技术社区  · 15 年前

    1 回复  |  直到 15 年前
        1
  •  3
  •   Community Mohan Dere    9 年前

    您真正想要的是从内存中释放页面。这可以通过使用VirtualUnlock来完成。看到了吗 VirtualUnlock Remarks

    对未锁定的内存区域调用VirtualUnlock将从进程的工作集中释放页面。

    注意:如文档所述,函数将返回FALSE(页面未锁定),GetLastError将返回ERROR\u not\u locked。

    如中所述 Guillermo Prandi's question CreateFileMapping, MapViewOfFile, how to avoid holding up the system memory .


    但是,中的代码 the question mentioned 正在测量内存占用,但测量的内容不具有代表性,因为从进程工作集中删除页并不一定意味着它不再存在于内存中。

    要使访问速度变慢(即真正从内存中丢弃页),必须取消映射视图并关闭内存映射句柄和文件句柄(最后一个对我来说很奇怪,因为我预期取消映射视图并关闭映射句柄就足够了)。

    这仍然是可能的系统将采取VirtualUnlocked作为一个提示,它会放弃网页更快,一旦它需要放弃一些东西,但这是我必须考虑的事情,但如何证明。

    推荐文章