c++ - 如何防止一个程序/进程的分页?

标签 c++ linux paging swapfile

我有一个程序需要大量内存,例如所有物理内存的 2/3。运行一段时间后,我的操作系统开始将程序交换到硬盘。但是我需要程序一直响应非常快,所以我需要阻止该进程的分页。

如何防止操作系统交换一个进程?

感谢您的帮助!

最佳答案

在程序开始时,调用:

mlockall(MCL_CURRENT | MCL_FUTURE);

(如果您没有程序的源代码,则必须使用 ptrace 破坏进程才能执行此操作。

请注意,这会增加进程失败的内存分配机会。

关于c++ - 如何防止一个程序/进程的分页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2360116/

相关文章:

c++ - 如何解释 array[value - 'a' ]

c++ - 未能找到 std::wstring 中存在的 wchar_t

c++ - VirtualQueryEx 错误 - 页面太多

iphone - UIScrollView - (bounces = NO) 似乎覆盖 (pagingEnabled = YES)

c++ - OpenCV cv::Mat 'ones' 用于多 channel 矩阵?

c++ - 确定 operator[] 用途的目的

c - 为什么 vmalloc 返回的地址不能转换为物理地址

Linux 基础知识 - 如何退出正在运行的命令

linux - 以前错误的未对齐调用现在可以工作了吗?

arrays - 计算二维数组的页面错误数