在 Firefox 中打开 20 多个选项卡不可避免地会导致 2-3 个选项卡持续使用大量 CPU,从而降低整个系统的速度。我想知道是否可以对每个选项卡消耗的总 CPU 时间进行限制。我知道可能无法找出插件等消耗了多少时间,所以我只限制 Javascript 的执行时间。
有一个插件叫暂停标签它采取了正确的操作,但基于错误的标准,在超时后停止(并卸载)所有不活动的选项卡。然而,这感觉像是地毯式轰炸:我有一些正在阅读的书籍或文章的选项卡,其中大多数都没有令人反感。我不想不必要地重新加载它们,因为它们通常很大,需要时间加载。
请注意,这与关于识别令人反感的标签。我对手动搜索此类标签不感兴趣。
我使用 Firefox,目前没有打算换一个。不过,我欢迎针对其他浏览器的相关回答,因为拥有一个对 CPU 要求较低的浏览器可能会说服我换一个。
答案1
您可以使用命令行实用程序cpulimit
(由 OSX 安装aptitude install cpulimit
或brew install cpulimit
为 OSX 安装)来限制每个选项卡的最大 CPU 使用率。about:processes
在 Firefox 中输入将为您提供进程 ID。假设有问题的选项卡的进程 ID 为 1234。然后
cpulimit -l 10 -p 1234
会将该选项卡的 CPU 使用率限制为 10%。
另一种方法是启动另一个 Firefox 或 Firefox Developer Edition 实例,将所有占用大量资源的选项卡放在那里,并使用 限制整个应用程序cpulimit
。
答案2
您可以使用实用程序“nice”和“renice”来设置/更改进程的优先级,以便它们占用更多或更少的 CPU 时间。
例如,此命令将设置进程 ID 为 987 的进程的优先级为 1:
renice 1 -p 987
这将设置进程 ID 为 987 的进程的优先级为 19:
renice 19 -p 987
优先级值较低的进程将获得更多的 CPU 时间,优先级值较高的进程将获得较少的 CPU 时间。优先级值通常介于 -20 到 20 之间,如果没有特别指定,则默认值为 0。