为何同样的JS代码在Google Chrome和Chromium的执行时间有100倍的差别?

为何同样的JS代码在Google Chrome和Chromium的执行时间有100倍的差别?

最近发现一个网站使用第三方chromium浏览器效果很差,但在谷歌Chrome中却正常;经过对比分析,发现原因很可能是JS执行时间较长。我把JS代码提取出来放在了一个简单的测试页面,对比测试显示使用chrome需要30ms,但使用chromium需要3秒多。我找不到原因,到底是什么因素导致了这样的差异?我测试了chromium各个版本(M86、M88、M90、m92)。以下是我的测试页面,关键代码:

for (var td_GE = 0; td_GE < event.renderedBuffer.length; td_GE++) {
    td_Md.update(event.renderedBuffer.getChannelData(0)[td_GE].toString());
}

完整的测试页面可以访问: https://linxin2020.github.io/hls_live/js_performance.html 铬测试

铬测试

答案1

Chromium 没有正式的稳定版本。它是一个持续的测试版程序,因此预计会有错误。您可能下载了未经完善的 Chromium 版本。

MXX 版本是 Chrome 的里程碑版本,每四周从 Chromium 中分叉一次。测试中使用的 Chromium 浏览器的稳定性取决于您从哪里下载的。它们很可能是未经完善的版本。


编辑:

以下是在发布之前对 Chromium 源代码进行的一些测试。我首先会链接这个旧答案它概述了所执行的测试。请注意,WebKit 测试包括 JavascriptCore 测试,用于测量 JS 执行性能等。这个答案已经过时了,因为自 2013 年以来,Google 将 WebKit 引擎分叉为 Blink 以供将来构建。

以下是我在当前测试阶段找到的文档:

旧文档中的某些页面现已移至新网站,例如,性能测试现已移至新文档中的遥测。

您可以看到测试分为以下几类:

  • 单元测试(针对附加功能)
  • 浏览器测试(UX 测试)
  • Web 测试(Blink Engine 测试)
  • 遥测(功能性能和基准测试)
  • 仪器测试(适用于 Android)
  • EarlGrey(适用于 iOS)
  • 模糊测试(安全性和稳定性)
  • Tast(适用于 ChromeOS)

Web 测试涵盖 JS 执行。

也许 Chromium 版本不会运行这些单元测试,或者也许 Google 有他们自己的一套经过更优化的专有测试,这很有可能,因为他们是 Google。

相关内容