如何保持窗口的内存分页

pho*_*tom 2 windows memory-management

我们正在开发一个Vista/Windows 7应用程序,它将使用VS2008/C++以64位模式运行.我们将需要在RAM中缓存数百个2-3 MB的数据块,以达到内存限制的性能原因.我们的使用情况是这样的,如果数据全部在磁盘上,我们就无法快速读取数据.缓存内存使用量将大于1GB内存.为了使其正常工作,我们需要确保Windows不会将此内存分页,因为它会破坏我们为什么这样做的目的.

我做了大量的研究,找不到准确说明如何做的文档.我已经看到几个引用推断内存映射文件以这种方式工作.是否有专家可以为我澄清这一点?

我知道有其他程序我们可以适应这样做,例如,拆分blob并加载到memcache或内存数据库,但它们都有太多的性能或代码复杂性问题.

建议?

Han*_*ant 5

您可以使用VirtualLock.但是,你肯定会按照你所说的金额达到配额.鉴于你永远不应该在这台机器上运行任何其他代码,你最好只是禁用分页文件.控制面板+系统+高级.