我有一个程序需要很多内存,就像所有物理内存的2/3。经过一些运行时,我的操作系统开始将程序交换到hdd。但是,我需要程序始终响应得非常快,所以我需要防止对这个过程进行分页。
如何防止操作系统交换一个进程?
谢谢你的帮助!
发布于 2010-03-02 00:43:06
在节目开始时,打电话给:
mlockall(MCL_CURRENT | MCL_FUTURE);(如果您没有程序的源代码,就必须使用ptrace来破坏这个过程)。
请注意,这将增加进程失败导致内存分配的可能性。
发布于 2010-03-02 00:24:15
发布于 2010-03-02 00:23:29
使用mmap()代替malloc,并使用"MAP_LOCKED“标志。(工作于linux > 2.5.37)
https://stackoverflow.com/questions/2360116
复制相似问题