0

有没有办法将交换的内存发送回主内存?

编辑:我有一个运行并吃掉所有内存的进程,所以现在,每次我使用另一个应用程序时,它都会有一些东西在交换中,所以重新加载到内存需要时间。现在消耗内存的过程已经停止,我想强制让所有的东西再次进入内存。所以我只会等待一次,让那些在内存中的东西再次交换到内存中,而不是每次我重用打开的应用程序时。

4

2 回答 2

1

不直接;此外,通常您不想这样做,因为通常交换的是不再需要的部分(初始化代码)。解决这个问题的唯一方法是要求内核禁用交换区域,即使那样也不是立即的。

于 2012-04-10T19:23:02.957 回答
0

内核会在需要时自动、透明地将数据交换回 RAM。

您可以避免使用mlock()or被换出mlockall(),但您可能不应该这样做。如果您的应用程序最终被换出,则可能是使用了太多内存,或者机器中的内存太少,或者正在运行的进程太多。您的应用使用mlock().

于 2012-04-10T19:21:26.270 回答