如何强制进程交换到虚拟内存?


1

我想要一些不活跃的进程来交换到虚拟内存,释放主内存用于其他用途。

我已经创建了一些shell脚本 - sleepchrome,sleepfirefox和sleepsafari,当我不想退出它时,它会睡一个应用程序,但不要让它占用CPU或内存。脚本用于防止CPU使用 - 它们识别并向相关进程发送SIGSTOP信号。(如果有兴趣,请尽快分享代码 - 提问。)

但由于某种原因,MacOS似乎对将它们交换到虚拟内存不感兴趣:即使存在显着的内存压力,每个Activity Monitor也会减少进程内存使用量。

这是操作系统中的错误吗?似乎是。有解决方案吗?也许它需要修改应用程序本身或插件?(这会使这更像是一个stackoverflow问题)


1
当您说“进程的内存使用量没有减少”时,您正在查看哪些内存使用量数字?一些使用数字包括已被换出的内存。
duskwuff

1
操作系统不是已经这样做了吗?(与App Nap等)
摩根罗杰斯

@duskwuff在OP中回答:“每个活动监视器”。随便挑选。内存,压缩内存,实内存大小,虚拟内存大小,内存大小,共享内存大小,专用内存大小。也不会改变ps的输出。
Matthew Elvey 2017年

@MorganRodgers:不,它似乎没有,而且我在提问之前阅读的小文档没有表明它确实如此,IIRC。它侧重于CPU,而不是RAM。
Matthew Elvey 2017年

有趣的相关问题:stackoverflow.com/questions/10775687/...。(PS 这是我上面评论中提到的文件。没有提及记忆。)
Matthew Elvey
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.