在 GNU/Linux 上,我可以使用 $kill -STOP 发送 SIGSTOP 信号 然后我可以发送 SIGCONT 再次激活它,
这可以节省 CPU 性能,避免在最小化的 Firefox 窗口“Isolated Web Co”中消耗约 11%
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
28112 test 20 0 2824208 337744 126840 S 11.3 2.1 0:14.89 Isolated Web Co
是否有任何桌面用户界面集成了一种将 SIGSTOP 发送到进程线程树的方法,以减少最小化进程/线程上的 CPU 负载?
我显然不会在我也在听的最小化 Spotify 上这样做!
所以这个行为是
- 右键单击标题栏,选择“最小化并停止”
- 当单击任务栏上的图标时(例如在 GNOME Classic 中),应用程序将收到 SIGCONT 并且窗口再次最大化。
我想要另一个“最小化和暂停”。这将发送 SIGSTOP 通讯
答案1
停止交互式进程是打破用户功能期望的绝佳方法,因为现代桌面应用程序确实通过消息总线与桌面环境的其余部分紧密集成。因此,尽管你的方法听起来很诱人,但在实践中这将是一个坏主意。更不用说你真的不能让 X 窗口停止响应......
所以,不,我认为在我所知道的任何桌面环境中都不存在这样的黑客行为。
请注意,是您的浏览器在那里为您做一些事情 - 正确的做法是接近它正在做的事情并使其停止,如果它对您没有用处。我怀疑是这样的 - 例如,浏览器选项卡中的聊天客户端可能需要不断地从服务器接收和发送状态消息,或者您的在线文字处理工具不应该运行不同步,或者您的缓存正在被压缩或这样的。
无论如何,软件设计者通常会为此类后台作业分配低优先级(不知道这里是否是这种情况),因此通常仅在 CPU 没有更好的事情可做时才运行。换句话说,它们不会对性能产生重大影响。它们可能仍会消耗电量,从而减少电池供电的运行时间,主要是因为它们可能会阻止操作系统将 CPU 核心完全置于睡眠状态。
虽然这仍然有些不可取,但您需要将实际影响与挂起/唤醒进程可能产生的负面影响进行比较(重新建立由于 TCP 超时、大量 en-在 WiFi 卡需要高传输功率以实现高数据速率时阻止数据传输,简单的事实是,在发生这种情况时,您将不得不等待,这意味着您将在最大亮度屏幕上观看更长时间- 所有影响节能的因素!)
答案2
killall -SIGSTOP firefox-bin
在这里工作得很好。我没有观察到任何副作用。
如果您愿意,您可以创建桌面快捷方式来停止和恢复 Firefox。
SIGCONT
恢复。