前不久 InfoQ 曾经报道过,在DeltaBlue 基准测试中,Dart2js 生成的JavaScript 代码已经优于手写的JavaScript 代码,最近,还是基于该基准测试,最新的Dart VM 又击败了JVM7 的64 位服务器版本及其他版本。
Nikolay Botev 将 DeltaBlue 基准测试从 Dart 移植到 Java,针对 Dart-22416(最新的稳定版本)和 Dart-22577(一个每晚构建版本)运行了这一基准测试,并与若干 Java 客户端版本的测试结果进行了比较。在博客中他贴出了以下结果:
上表中第一列以微秒为单位,表示测试运行一遍所需的时间;而第二列是每秒运行次数,该值即为上图中测出的DeltaBlue 分数。
我们也在一个8 核AMD FX-8350 处理器、SSD 硬盘的计算机上运行了相同的测试,但是这次是与JVM 7 的64 位服务器版本做比较。在将每个测试运行10 遍之后,得到了以下平均结果:
VM
Average Time (us)
Score
Java HotSpot™ 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 )关注我们,并与我们的编辑和其他读者朋友交流。
评论