谷歌发布 JavaScript 开源基准测试套件——Octane

  • Abel Avram
  • 倪瀚飙

2012 年 9 月 13 日

话题:JavaScriptGoogle性能调优语言 & 开发

谷歌发布了新的开源 JavaScript 基准测试套件Octane,它包含了 13 个测试,用于测量浏览器加载与执行复杂的大型 JavaScript 应用的性能,如游戏、交互、富 Web 页面和在线工具等。Octane 包含了最初的V8 基准套件提供的 8 个测试,以及新增加的 5 个测试——pdf.js,Mandreel,GB Emulator(GB 模拟器),Code Loading(代码加载),Box2DWeb——可以测量其余测试力有未逮的性能领域。

  • Richards—— OS 内核模拟基准测试,最初由Martin Richards写在 BCPL 中(539 行)。
  • Deltablue——单向约束求解器 (Constraint Solver),最初由 John Maloney 和 Mario Wolczko 用 Smalltalk 写成(880 行)。
  • Raytrace——Ray tracer 基准测试,基于Adam Burmister 编写的代码(904 行)。
  • Regexp——正则表达式的基准测试是从 50 个最流行的网页中提取正则表达式操作所产生的(1761 行)。
  • NavierStokes——2D NavierStokes 方程求解器(Equations Solver),主要处理双精度数组。它基于 Oliver Hunt's 的代码(387 行)。
  • Crypto——加密和解密基准测试,基于 Tom Wu 的代码(1698 行)。
  • Splay——数据操作的基准测试,用于处理平衡树,使用了自动内存管理子系统(394 行)。
  • EarleyBoyer——经典的样式基准测试(Classic Scheme Benchmarks),使用 Florian Loitsch 的 Scheme2Js 编译器将 Scheme 转换为 JavaScript(4684 行)。
  • pdf.js——在 JavaScript 中实现了 Mozilla 的PDF 阅读器。它可以测量解码和解释的时间(33,056 行)。
  • Mandreel——运行3D Bullet 物理引擎,该引擎通过 Mandreel 将 C++ 移植到 JavaScript (277377 行)。
  • GB Emulator——全部采用 JavaScript 模拟便携式控制台的架构,以及运行所需的 3D 模拟(11,097 行)。
  • Code loading——测量 Javascript 引擎在加载了一段大型的 Javascript 程序后开始解码的速度有多快,一个常见的实例为 Social Widget。该测试的源代码来自开源代码库(Closure, jQuery)(1,530 行)。
  • Box2DWeb——基于流行的 2D 物理引擎Box2DWeb,最初由 Erin Catto 编写,现被移植到 JavaScript。 (560 行,9000+ 精简版)

该基准测试可以运行在桌面版的 Chrome 14+、 Firefox 13+、IE 10、Opera 12 和 Safari 5.1.7+ 上,移动版的 Chrome, Firefox 和 Opera 上。它无法在 IE 9 上运行,因为微软的浏览器没有实现 WebGL类型化数组 (Typed Arrays),一些手机浏览器也未能完成某些测试,包括:Android 浏览器、iOS 4 上的 Chrome 浏览器(由于 iOS 的限制)和 iOS 上的 Safari 浏览器。

相较于如V8, SunSpider, Kraken 或 Dromaeo之类的其他 JavaScript 基准测试,Octane 表现更为全面。谷歌表达了他们想要不断改进测试套件的意愿,邀请了用户填写性能方面或应用程序的问题报告,这可以作为更为全面的 JavaScript 测试的基础。

Octane 基准测试的源代码新的 BSD 许可下可用。

原文链接:http://www.infoq.com/news/2012/08/Octane-JavaScript-Benchmark


感谢张逸对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

JavaScriptGoogle性能调优语言 & 开发