谷歌发布了新的开源 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 测试的基础。
原文链接: http://www.infoq.com/news/2012/08/Octane-JavaScript-Benchmark
感谢张逸对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论