与此类似:如何在Linux / Windows下“休眠进程”?
是否有任何方法可以使进程不驻留在内存中而使其休眠?例如:如果我不想使用Firefox,又不想关闭它的进程,并且需要可用内存,那么我该如何真正休眠该进程,以便释放Firefox保留的内存?
我需要Windows和Linux的解决方案!
与此类似:如何在Linux / Windows下“休眠进程”?
是否有任何方法可以使进程不驻留在内存中而使其休眠?例如:如果我不想使用Firefox,又不想关闭它的进程,并且需要可用内存,那么我该如何真正休眠该进程,以便释放Firefox保留的内存?
我需要Windows和Linux的解决方案!
Answers:
如果我不想使用Firefox,又不想关闭它的进程,并且需要可用内存,那么我该如何真正休眠该进程,以便释放Firefox保留的内存?
对于Windows,有Free Process Freezer。
如yeedl的答案所述,对于Linux和Mac OS X,有CrypoPID。
如果您想提出一个自定义解决方案:
看看process dumping
在Windows上,例如。ProcDump,使用WinDBG的CLI调试器将其恢复。
考察core dumping
Linux,例如。核心,使用CLI调试器(如GNU GDB)将其恢复。
我敢打赌,基于软件的解决方案可能不涉及调试器,但这是针对Stack Overflow的。
您正在寻找一个非常特定的用例,为什么不只是暂停并让它换出呢?
您将花费更多的时间来使您的进程运行和暂停...
我相信您可以通过另一种更加无缝的方式优化工作流程。
Windows和Linux / Unix通过从可运行进程列表中将其删除,提供了一种挂起或停止进程执行的方法。
这不会直接影响进程所拥有的内存页面,但是随着时间的流逝,随着系统承受内存压力,这些页面将很容易替换为磁盘。
尝试将过程写到磁盘以供以后恢复对任何不平凡的事情都行不通。该过程恢复后,网络和窗口系统的打开句柄将立即失败。
对于Windows:
我不知道有什么方法可以在不杀死进程的情况下完全将其从内存中逐出,但是您可以通过最小化其主窗口来修剪其工作集。Microsoft有一篇文章对此进行了解释:在最小化其顶级窗口时,将修剪应用程序的工作集。
因此,首先最小化主窗口,然后按照您链接的问题中的建议中止过程。
您可以使用永远有用的Process Explorer来完成这两个任务。
在Windows上,某些程序可以换出“未使用”的程序内存。
可以做到这一点的产品示例是商业化的过程套索。
但是,甚至Process Lasso也建议不要这样做。
最好将虚拟内存的管理交给Windows,而不要自己掌握。这些程序带来的任何好处都是一种幻想,是暂时的。即使在清理后加载的程序看起来加载得更快,您迟早也会分页内存的增加。
现在关于Firefox,请参阅mozillaZine的“ 减少内存使用量-Firefox”,其中包含有关如何发现哪些扩展程序泄漏内存的大量建议。
还有Firefox扩展Memory Fox:
尝试减少浏览器的RAM内存使用率,从而促进其他应用程序进程对RAM内存需求的可用RAM内存的增加。希望能促进内存恢复和保留的任何尝试。
以我的经验,此扩展只会延迟Firefox不可避免的内存膨胀。唯一真正的解决方案是不时关闭Firefox以释放内存。