【发布时间】:2010-04-02 17:50:25
【问题描述】:
我们正在开发一个使用 VS2008/C++ 以 64 位模式运行的 Vista/Windows 7 应用程序。出于性能原因,我们将需要在 RAM 中缓存数百个 2-3 mb 的数据块,直至达到一定的内存限制。我们的使用情况是这样的,如果数据都在磁盘上,我们就不能足够快地读取数据。缓存内存使用量将大于 1gb 内存使用量。为了使其正常工作,我们需要确保 Windows 不会将该内存分页,因为它会破坏我们这样做的目的。
我进行了大量研究,但找不到确切说明如何执行此操作的文档。我已经看到了一些推断内存映射文件以这种方式工作的参考资料。有专家可以帮我解释一下吗?
我知道我们可以调整其他程序来执行此操作,例如,拆分 blob 并加载到 memcache 或内存数据库中,但它们在性能或代码复杂性方面都存在太多问题。
建议?
【问题讨论】: