如何确保内存映射文件始终位于 RAM 中

发布于 2025-01-07 00:38:44 字数 247 浏览 2 评论 0原文

是否可以创建用于进程间通信的内存映射文件,并保证内容始终保存在 RAM 中而不刷新到页面文件?

我目前正在开发一个定制的 OLAP 应用程序。核心思想是拥有一个像内存库一样包含所有数据的进程,以及实际执行计算的多个工作进程。虽然通常一切都工作得非常顺利,但当工作人员尝试在一段时间未使用的文件部分上创建视图时,有时会出现性能问题 - 因此我的问题。

RAM 量不是问题(Windows/64 位) - 我们只是不知道是否可以阻止系统使用页面文件。

Is it possible to create a memory mapped file for interprocess communication with a guarantee that the content is always being kept in RAM and not flushed to page file?

I am currently working on a bespoke OLAP app. The core idea is to have one process like a memory bank which contains all the data, and multiple worker processes which actually do the calculation. While usually everything works very smoothely, from time to time there is a performance hiccup when a worker tries to create a view on a part of a file which has not been used for a while - hence my question.

Amount of RAM is not a problem (Windows/64 bit) - we just do not know whether it is possible to stop the system from using a page file.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

血之狂魔 2025-01-14 00:38:44

您可能正在寻找 VirtualLock 函数。

将进程虚拟地址空间的指定区域锁定到
物理内存,确保后续对该区域的访问将
不会发生页面错误。

请注意讲师

You are probably looking for the VirtualLock function.

Locks the specified region of the process's virtual address space into
physical memory, ensuring that subsequent access to the region will
not incur a page fault.

Caveat lector.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文