是的,我知道休眠通常适用于计算机。(休眠意味着将程序存储器保存在磁盘中并能够以一致的方式还原它。)
但是,休眠程序可能非常有用。假设我想玩游戏,但是像firefox,acrobat之类的一些程序占用了500M的内存,因此我想释放它。关闭然后再启动可能很耗时,尤其是在无法存储会话数据的情况下。所以我去让他们冬眠。那么我有什么办法可以休眠程序?
是的,我知道休眠通常适用于计算机。(休眠意味着将程序存储器保存在磁盘中并能够以一致的方式还原它。)
但是,休眠程序可能非常有用。假设我想玩游戏,但是像firefox,acrobat之类的一些程序占用了500M的内存,因此我想释放它。关闭然后再启动可能很耗时,尤其是在无法存储会话数据的情况下。所以我去让他们冬眠。那么我有什么办法可以休眠程序?
Answers:
虽然这不是实际的休眠状态,但可以暂停该过程。它会立即停止使用CPU周期,但仍会使用内存。幸运的是,如果之后再启动任何占用大量内存的应用程序,则该内存将被交换为页面文件,因此这不是真正的问题。挂起的进程无法在重新启动\注销后幸免,但这足以玩游戏。
相关问题:挂起/恢复进程的简便方法?
在内部,可以通过不同的方法来暂停进程:
NtSuspendProcess
Windows XP Sp0引入的此功能(未正式记录),此后适用于每个单个系统版本。
Microsoft提供的调试接口,使用DebugActiveProcess和DebugActiveProcessStop函数。当调试器将自己附加到远程进程时,所有目标线程将立即挂起,直到调试器给出一个让其执行的标志。
有许多可用的工具可以挂起进程:
此外,资源监视器(Task Manager→交通Performance→交通Open Resource Monitor)在Windows Vista和更高的可以暂停\恢复处理:
尽管您关于会话数据的观点是正确的,但是“休眠”应用程序不会比关闭并重新启动它更快。一般来说,没有什么好处。
Closing the program and then restarting it only requires copying it from the hard disk.
您忘记在需要得到程序返回到它的状态时添加例如,重新打开了一堆浏览器标签的,在编辑器中打开文件,等等。
由于您使用的是Windows,因此您始终可以创建两个用户帐户,并在Windows中使用快速帐户切换功能,并将每个用户帐户用于不同的应用程序集。由于Windows几乎处于休眠状态,因此计算机上打开的其他视图将进入休眠状态。我认同。