【发布时间】:2013-06-05 12:51:20
【问题描述】:
我们有一些软件使用 Chrome 扩展程序来自动化浏览器(抓取客户端网站)。
通常我们在多个选项卡(最多 5 个)中运行此软件的多个实例以并行工作。
在 Chrome 28(测试版)中,我们注意到非活动(背景)选项卡似乎受到严重限制或以明显较低的优先级运行。基准测试表明,我们的扩展现在在非活动选项卡中的运行速度比在活动选项卡中慢 10 倍左右。如果 Chrome 被最小化,在活动标签中也会看到类似的行为。
这种行为在 Chrome 27(稳定版)中看不到,在该版本中,活动/非活动标签的性能相当。
任何想法或想法将不胜感激。
我们的 Chrome 测试版(版本 28.0.1500.29 beta-m)在 Microsoft Windows 7 和 Server 2008 上运行。
谢谢 理查德
【问题讨论】:
-
你在使用 Web Workers 吗?
setInterval?还是只是链接 Ajax 调用和成功回调? -
嗨@apsillers - 是的,我们在当前设置为100ms的地方使用setTimeout。也使用了 Web Worker,但不在测试用例中。
-
Firefox 和 Chrome 限制
setTimeout和setInterval在非活动或最小化选项卡内运行时每秒调用不超过一次。这可能是你的问题吗? -
Near-duplicate: Javascript performance when running in an unfocused tab -- 唯一不同的是,您似乎在 Chrome 27 中没有经历过这种情况,这是不寻常的。也许 Chrome 只是为扩展脚本部署了节流功能?
-
嗨@apsillers - 好的 - 刚刚做了一个测试并注释掉了100ms的setTimeout代码,扩展性能大大提高。我认为您是对的,现在 Chrome 28 中的扩展程序已强制规定了新的 1 秒最小值。希望 Chromium 团队的某个人能证实这一点。有趣的是,性能仍然不如 Chrome 27 - 我想知道页面加载现在是否也延迟了?
标签: google-chrome google-chrome-extension