我有一个程序需要大量内存,例如所有物理内存的 2/3。运行一段时间后,我的操作系统开始将程序交换到硬盘。但是我需要程序一直响应非常快,所以我需要阻止该进程的分页。
如何防止操作系统交换一个进程?
感谢您的帮助!
最佳答案
在程序开始时,调用:
mlockall(MCL_CURRENT | MCL_FUTURE);
(如果您没有程序的源代码,则必须使用 ptrace
破坏进程才能执行此操作。
请注意,这会增加进程失败的内存分配机会。
关于c++ - 如何防止一个程序/进程的分页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2360116/