AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1500289
Accepted
Michael Altfield
Michael Altfield
Asked: 2019-11-09 05:29:45 +0800 CST2019-11-09 05:29:45 +0800 CST 2019-11-09 05:29:45 +0800 CST

如何使用 dom.min_background_timeout_value 在 Firefox 中积极限制背景选项卡

  • 772

在 Firefox 中积极限制后台选项卡的正确设置是什么?

几年前,我偶然发现这篇文章解释about:config了 Firefox 中用于限制背景(和前景)选项卡的各种设置,但我永远无法理解它们的含义。例如,不清楚这些选项中的每一个的单位是什么(秒、毫秒?),以及增加该值是否会更多地限制选项卡或减少它们。

dom.min_background_timeout_value
dom.timeout.background_budget_regeneration_rate
dom.timeout.background_throttling_max_budget
dom.timeout.budget_throttling_max_delay
dom.timeout.foreground_budget_regeneration_rate
dom.timeout.foreground_throttling_max_budget
dom.timeout.throttling_delay

具体来说,让我们采取一个超级激进的节流策略:我想让后台选项卡每 30 分钟只授予 1 毫秒的执行时间。我希望此策略在选项卡不再处于前台后 1 毫秒生效。也就是说,在我将标签页留在后台后的 30 分钟内,标签页的 CPU 使用率不得超过 0.00%。

这些 Firefox 设置的值应该是什么才能实现这种激进的节流行为?

cpu firefox
  • 2 2 个回答
  • 3914 Views

2 个回答

  • Voted
  1. Best Answer
    Michael Altfield
    2019-11-11T01:49:49+08:002019-11-11T01:49:49+08:00

    在我将标签留在后台后的 30 分钟内,标签的 CPU 使用率不应超过 0.00%。

    这可以通过在中设置以下条目来实现about:config

    dom.min_background_timeout_value 1,800,000
    dom.min_tracking_background_timeout_value 1,800,000
    dom.timeout.throttling_delay 1
    

    根据window.setTimeout 上 mozilla 文档的“非活动标签”部分:

    为了减少后台选项卡的负载(和相关的电池使用量),超时被限制为在非活动选项卡中每秒触发一次(1,000 毫秒)的频率不超过一次。

    Firefox 从版本 5 开始实现此行为(请参阅错误 633421,可以通过 dom.min_background_timeout_value 首选项调整 1000ms 常量)。Chrome 从版本 11 (crbug.com/66078) 开始实现此行为。

    自 Firefox 14 中的错误 736602 以来,Firefox for Android 对后台选项卡使用 15 分钟的超时值,并且后台选项卡也可以完全卸载。

    所以火狐上的默认值dom.min_background_timeout_value是15分钟(实际上设置900,000为单位是毫秒),这对于试图节省电池和稀缺RAM / CPU资源的设备来说是有意义的。将该值加倍以达到 30 分钟 = 1,800,000.

    请注意,有一个about:config用于限制跟踪脚本 ( dom.min_tracking_background_timeout_value) 的不同条目也应增加到与1,800,000ms 相同的值。

    默认情况下,当标签不再在前景中时不会限制。因此,我们设置dom.timeout.throttling_delay为1ms 以在它们不再处于前台时几乎立即开始限制选项卡。

    我不知道大多数其他about:config条目是做什么的。这些budget特别令人困惑,欢迎进一步澄清。

    • 9
  2. Calum McConnell
    2021-05-08T07:02:53+08:002021-05-08T07:02:53+08:00

    对于比简单的“大量限制所有计时器”更复杂的工作负载:即让计时器在较短的情况下更频繁地运行,Firefox 中还有一个计时器预算机制。这种预算机制只允许计时器在有“预算”的情况下运行,该预算会因给定选项卡中的计时器花费运行的时间量而减少,并因缓慢的重新生成而增加。当它为负时,定时器被阻止运行。请注意,计时器似乎是针对每个标签的:功能 Ratonale 强烈暗示,对计时器“礼貌”的标签会得到奖励,而不会受到惩罚的标签。

    about:config 中的以下选项可用于调整:

    dom.timeout.background_budget_regeneration_rate降低计时器获得更多运行时间的速率。它以在选项卡中的后台选项卡计时器预算增加一毫秒之前必须经过的实时毫秒数为单位。

    dom.timeout.background_throttling_max_budget设置可以在预算内存储的最大毫秒数。一旦预算这么大,它就会停止增加。

    dom.timeout.budget_throttling_max_delay设置给定选项卡中可以强制等待的最大毫秒数。它可以替代预算机制的其余部分。

    因此,如果将regeneration_rate 设置为60,并将max_budget 设置为3000,那么该选项卡将获得每分钟实时的一秒执行时间。如果在这种情况下将 max_budget 设置为 3000,则在三分钟后,预算将保持 3 秒的执行时间,并且将停止增加:因此在六分钟后,它仍将保持三秒。假设 max_delay 设置为 1000(即,预算最多只能使计时器保持一秒钟)。请注意,这些设置远非最佳。

    如果上面选项卡中的计时器随后花费 5 秒钟执行(这不太可能),则预算将保持在 -2000 毫秒。如果该选项卡中的另一个计时器立即过去,它将被迫等待 2 分钟,同时预算重新生成为正值。但是,由于 max_delay 非常低(1 秒),因此无论如何都会在触发计时器之前经过 1 秒。

    我不知道这如何与 Michael 描述的更传统的超时机制相互作用。有关该机制的更多详细信息,请参阅此邮件列表帖子。

    • 4

相关问题

  • 在远程机器上运行 Selenium 脚本

  • 浏览器不会在 Windows 7 64 位操作系统上获得压缩页面

  • 在不同的 Firefox 实例之间共享选项卡

  • virtualbox 是否需要 CPU 来支持 VT-d 以托管 64 位客户操作系统?

  • LGA1151物理尺寸?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    Windows 10 服务称为 AarSvc_70f961。它是什么,我该如何禁用它?

    • 2 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Marko Smith

    ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1056)

    • 4 个回答
  • Marko Smith

    我如何知道 Windows 安装在哪个驱动器上?

    • 6 个回答
  • Martin Hope
    Albin 支持结束后如何激活 WindowsXP? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 “HTTPS Everywhere”仍然相关吗? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch Windows 10 删除大量小文件的速度非常慢。有什么办法可以加快速度吗? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Ctrl+C 和 Ctrl+V 是如何工作的? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve