最新的 Dart VM 在 DeltaBlue 基准测试中击败 JVM

  • Abel Avram
  • 李彬

2013 年 5 月 14 日

话题:JavaJavaScript语言 & 开发

前不久 InfoQ 曾经报道过,在 DeltaBlue 基准测试中,Dart2js 生成的 JavaScript 代码已经优于手写的 JavaScript 代码,最近,还是基于该基准测试,最新的 Dart VM 又击败了 JVM7 的 64 位服务器版本及其他版本。

Nikolay BotevDeltaBlue基准测试从 Dart 移植到 Java,针对 Dart-22416(最新的稳定版本)和 Dart-22577(一个每晚构建版本)运行了这一基准测试,并与若干 Java 客户端版本的测试结果进行了比较。在博客中他贴出了以下结果

上表中第一列以微秒为单位,表示测试运行一遍所需的时间;而第二列是每秒运行次数,该值即为上图中测出的 DeltaBlue 分数。

我们也在一个 8 核 AMD FX-8350 处理器、SSD 硬盘的计算机上运行了相同的测试,但是这次是与 JVM 7 的 64 位服务器版本做比较。在将每个测试运行 10 遍之后,得到了以下平均结果:

VM

Average Time (us)

Score

Java HotSpot(TM) 64-Bit Server VM 1.7.0_21 23.21-b01

1808.18

553.04

Dart-22416

1885.02

530.5

Dart-22610

1610.48

620.93

在我们的测试中,与 JVM 相比,Dart VM 表现出 12% 的性能优势,这与 Botev 的发现一致。

数月前,Greg Lowe给出了他在 JVM 和 Dart VM 上运行 DeltaBlue 的结果,但他的基准测试使用的是 Sun 的原始 DeltaBlue 代码,它采用 Java 编写并包含一段热身时间:

Lowe 的测试结果中,测试运行次数超过 1000 遍以前,Dart 都体现出了更好的性能;而 Java 在测试运行超过 10000 次后性能更好。鉴于 Botev 的最新测试使用了新版本的 Dart VM,Lowe 在一个 Dart 邮件组中评论道:

我看了一下,看起来 DartVM 现在即使在运行 100000 遍的时候也能够击败 JVM(此前,在运行次数超过一定阈值后,Java 险胜 Dart)。

在我的计算机上,运行 100000 次耗时约为 45 秒。

在运行次数更少时,与 JVM 相比,DartVM 显著胜出。

虽然我们不能够基于一个基准测试就得到最终的结论,但我们可以放心地说,Google 已经将 Dart VM 的性能提升到很高的水平,Dart 成了一个有力的竞争者。

查看英文原文Latest Dart VM Beats JVM in DeltaBlue Benchmark


感谢臧秀涛对本文的审校。

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

JavaJavaScript语言 & 开发