Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
有没有办法将交换的内存发送回主内存?
编辑:我有一个运行并吃掉所有内存的进程,所以现在,每次我使用另一个应用程序时,它都会有一些东西在交换中,所以重新加载到内存需要时间。现在消耗内存的过程已经停止,我想强制让所有的东西再次进入内存。所以我只会等待一次,让那些在内存中的东西再次交换到内存中,而不是每次我重用打开的应用程序时。
不直接;此外,通常您不想这样做,因为通常交换的是不再需要的部分(初始化代码)。解决这个问题的唯一方法是要求内核禁用交换区域,即使那样也不是立即的。
内核会在需要时自动、透明地将数据交换回 RAM。
您可以避免使用mlock()or被换出mlockall(),但您可能不应该这样做。如果您的应用程序最终被换出,则可能是使用了太多内存,或者机器中的内存太少,或者正在运行的进程太多。您的应用使用mlock().
mlock()
mlockall()