监控 Firefox 中选项卡的 CPU%

监控 Firefox 中选项卡的 CPU%

有时,当我在 Firefox 中打开多个选项卡时,其中一个选项卡将开始消耗大量 CPU%,我想知道哪个选项卡是罪魁祸首。这样做是一个非常手动的过程,我希望找到自动化的方法。

我希望我有一个应用程序可以专门监视 Firefox,只生成我想知道的 Firefox 事实的简洁输出。

我正在寻找一个命令/应用程序,它将列出在 Firefox 中运行的每个选项卡的进程,经过过滤后仅包含每个选项卡进程的以下信息:

  1. 进程号
  2. Tab页地址
  3. CPU使用率
  4. 使用内存

此外,我希望信息按 CPU % 降序排序。

基本上,我希望存在一个像 htop 这样的程序,但它专门用于我想在 Firefox 中监视的相关内容(同时忽略了我不关心的所有细节)。

答案1

您可以about:performance在 Firefox 的地址栏中输入。然后你会得到一个表格,其中包含pidFirefox 的每个选项卡Resident Set sizeUnique Set Size。在此下方将有一些行解释每个选项卡的性能(如performing well),如果选项卡性能不佳,那么它将显示在那里,您可以使用该选项从那里关闭该Close Tab选项卡。

答案2

您可能想更进一步,使该过程自动化:

  • 自动检测占用 CPU 的进程(可以在浏览器选项卡中运行)
  • 如果/一旦他们超过某些/不合理的阈值,则终止他们

这是我编写的通用/可自定义脚本,称为 cpu 猪杀手解决浏览器(或其他地方)中恶意或其他行为不当脚本的问题。

该脚本定义了两个基本原语:

  • process-list:根据命令+参数正则表达式选择进程
  • terminate-hogs:杀死超出所需 CPU(总秒数和当前 %pct)消耗的进程

并利用它们来实现这一目标。

以下是摘自 git 存储库中 README.md 的描述。

cpu 猪杀手

通过命令+参数正则表达式和 CPU 消耗杀死高 CPU 占用进程。

有缺陷(或恶意)的第 3 方 JavaScript 代码经常会劫持我们的浏览器和计算资源。

我曾经发现桌面上的一些进程整晚都以 100% CPU 运行,而我什至没有注意到,因为 JavaScript 很糟糕。

非自愿的 CPU 占用可能是由受感染的广告、编写错误的代码、导致某人选择您的计算机来运行加密货币挖掘的“脚本驱动”或更糟糕的情况引起的。

它让你支付你不想要的电费,并且乘以许多在夜间运行的桌面和浏览器,对我们的星球也非常不利。

cpu-hog-killer是一个简单的脚本,我在晚上定期运行它。我让它每 13 分钟从 cron 运行一次,如下所示:

    # Add this line (or similar) using 'crontab -e'
    */13 0-7 * * *  ~/bin/cpu-hog-killer

它标识肯定CPU 占用进程(主要在 Chrome 或 Firefox 中)在检测到后立即杀死它们。请注意,它不会随意杀死占用 CPU 的进程,也不会杀死主浏览器进程。它只会杀死那些您明确表示要根据配置的regex+终止的进程CPU consumption parameters

早上当我回来时,最糟糕的情况是我进入浏览器选项卡,它显示(例如对于 Firefox):

    "Gah. Your tab just crashed."

我注意到哪个网站行为不当(根据其标题),浏览器允许我(显示一个大按钮):

    [Restore This Tab]

如果我愿意,那么实际上就不会丢失任何东西。

您可以向脚本添加更多规则,以涵盖更多可能在您不希望的情况下占用 CPU 的应用程序。只需查看“主要”部分(脚本的最后几行)并根据需要添加更多规则。每条规则如下所示:

    # [max_cpu_secs] [max_cpu_pct] are optional parameters to terminate-hogs
    # if not specified, default values will be used
    process-list '<some pattern>' | terminate-hogs [max_cpu_secs] [max_cpu_pct]

例如,仅杀死一个进程选项卡的 Firefox 规则是:

    process-list '[/]firefox -contentproc -childID.*tab$' | terminate-hogs

对于 Chrome/Chromium 来说是:

    process-list '[/]chrom(e|ium) --type=(renderer|utility)' | terminate-hogs

答案3

更新 似乎适用于 bash 中的用法:

watch -n 1 "ps aux | grep firefox"

watch -n 0.1 "ps aux | grep firefox"

watch -n 1 "ps aux | grep firefox && free -m"

在 Tab 中按 F5 并观看

当我现在用正确的选项卡杀死该选项卡时,我收到消息选项卡现在崩溃了

在火狐浏览器中,关于:性能是对的。

但是如果我关闭或打开并加载页面选项卡,请在 bash 中检查这一点:

$ pidof firefox

$ pidof firefox-esr

$ pgrep firefox 获取一个或“n”个配置文件的 main/parentid

$ pgrep firefox-esr 获取一个或“n”个配置文件的 main/parentid

得到父代号孩子气

$ ps aux | grep firefox

$ ps aux | grep firefox | grep tab

你看到父版本ID和一些东西子/选项卡

看来你杀不了子/选项卡只有父版本ID

ps -ef | grep firefox | wc -l

相关内容