【发布时间】:2023-03-04 07:54:06
【问题描述】:
在 C 或 C++ 程序中分配内存时,有一种方法(即使是奇特的)来设置交换性,或者向操作系统提供有关它的提示?
请注意,我不想为整个过程设置交换性,而是在对象/变量级别。
【问题讨论】:
-
你所说的 swappiness 是什么意思?
-
Swappiness 是一个 Linux 内核参数,用于控制换出运行时内存的相对权重,而不是从系统页面缓存中删除页面。 en.wikipedia.org/wiki/Swappiness
-
有点像锤子,不提供任何调优,但 POSIX 提供了
mlock()和mlockall()。这不是一个真正的答案,但从这里开始:pubs.opengroup.org/onlinepubs/7908799/xsh/mlock.html -
首先,由于您不交换单个对象或变量,因此您可能的意思是“想在 page 级别执行此操作”。其次,swappiness 参数不是你想要的,它甚至不是 per-process。
-
所以也许可以站出来描述一下您要解决的更高层次的问题?