【发布时间】:2020-02-18 21:37:26
【问题描述】:
我看到 Windows/Linux 具有暂停进程的能力。 为什么后台应用程序不会自动挂起,这对我来说是有线的。
例如,Chrome 在后台使用大量资源。它可以很容易地被暂停。所以它会留在 RAM 中,可以快速解除挂起,但不会使用 CPU 和 GPU。
我的问题包含两个部分:
- 为什么 Windows/Linux(或应用程序)不使用挂起功能? (类似于 Android 中的暂停,但方式不同)
- 是否有任何方法可以暂停后台任务并在它获得焦点时取消暂停(当它转到前台时)?
【问题讨论】:
-
1.拥有一个允许程序继续在后台运行的操作系统非常有用。还有其他管理资源使用的方法,但这种管理应该是可配置的,而不是在所有情况下都强制执行。 2. 在 Linux 中,
SIGSTOP和SIGCONT信号可用于暂停和重新启动进程。 -
问题 1 没有意义。 Windows确实挂起 UWP 应用程序。这需要基础设施和应用程序的协作,而这在几十年前开发 Windows 时是不可用的,因此系统依赖桌面应用程序来做正确的事情。
-
@kaylum 是的,我知道有 sigstop 和 sigcont 信号,但我的意思是像 android 系统(不完全相同),它会自动暂停后台应用程序并在它处于前台时恢复。
-
@llnspectable 我在最后的评论中解释了更多。我的意思是即使是新的 Microsoft Edge 也不使用挂起功能。这意味着这个功能是没用的。但是我的第二个问题是关于第三方应用程序,它能够在应用程序返回前台时取消暂停
-
恕我直言,您似乎不了解程序如何运行,或者它们为何以及何时消耗资源。一个桌面应用程序,它在后台并且不做任何事情(比如记事本),根本不执行任何代码。它只是坐在那里,等待消息到达
GetMessage。发生这种情况时,线程调度程序唤醒线程,以便它可以分派消息。此外,应用程序不会“停留在 RAM 中”。虚拟内存已经存在了几十年(这是复数)。 RAM 是一种性能优化。
标签: linux windows performance suspend