Renaissance:比较 JVM 性能的新基准

Charles大学、Oracle实验室和其他几所大学的研究人员发布了Renaissance,它是一个用于Java虚拟机性能测试的新基准。这个基准让JVM开发人员能够测量不同JVM发行版之间的性能,从而更好地理解应用程序在特定的JVM上有怎样的表现。

Renaissance旨在对Java 8(2014)到Java 12(2019)这些版本之间发布的并发特性进行更多的测试。这些测试在诸如DaCapo和SpecJVM2008等基准使用过的一些测试基础上进行了扩展。总共有21个面向并行和并发的基准测试,覆盖了Java和Scala代码。另一个热门的JVM基准测试是SPECJB2015,IBM使用它来演示硬件更改对Java性能的影响

Renaissance白皮书的12位作者中,有5位与Oracle实验室合作开发GraalVM。GraalVM是一种新的多语种虚拟机,可以在一个运行时中运行包括Java在内的多种软件语言。GraalVM有社区版和商业企业版两个版本。每个版本都有两种模式:热点模式和本机镜像。热点模式是在OpenJDK的HotSpot实现之后命名的,且通过Java测试兼容性工具包(JCK)的测试,完全兼容OpenJDK。GRAALVM的另一种模式(本机镜像)将Java应用程序编译成本机机器码,由于一系列原因,它并不完全遵循Java SE的兼容性定义,但它可以运行符合其假设的应用程序。

来自Excelsior的高级软件工程师Nikita Lipsky对Sun Microsystems在2004年定义的本机镜像兼容性问题提出了质疑:“其中有一条规则要求产品的‘所有配置’都具备兼容性。我们不能使用特殊的配置来通过测试,然后鼓励客户使用其他实际上不兼容的配置。是的,那个把戏有人试过一次。”

InfoQ与Oracle进行了沟通,确认了在Renaissance基准中发布的数字是在兼容HotSpot模式下生成的,因此可以用它们来与其他JVM进行比较。

总体而言,Graalvm社区版的性能与OpenJDK相当,而Graalvm企业版得分更好。在下面的图表中,得分越高越好。

Renaissance的发布引起了与其他Java实现的混淆,因为他们没有参与,也不知道基准可以测量什么东西。与SPEC(SPEC提供了一个公平的基准线,在这个平台上,竞争厂商达成了一致)不同,GraalVM独自参与了Renaissance。尽管12位作者中有7位来自不同的大学,但竞争形势并不存在。研究Shenandoah垃圾收集器的Red Hat性能专家Aleksey Shipilev说 :“基准游戏是关于可信度,而供应商基准则充满了利益冲突。新的基准套件也如此,而与经过特别优化的供应商产品成果一起出现的新的基准套件就更是如此。”

Azul CTO Gil Tene解释说:“创建‘新基准’可能并非偶然,但这也没什么错。时间会告诉我们这是否是一个可以用来比较JVM性能的基准。只有当参赛者都站在同一条起跑线上,比赛才算上是真正的比赛。如果Renaissance是一个真正的基准,那么它将会保持不变,而不是‘自适应并发生快速变化’,从而允许其他人重现稳定的基准结果,对不同的实现进行比较。”

Shipilev指出了按照定义起始线来运行基准的困难之处,“如果说这个套件是‘开源和可更改的’,‘基准的选择具有公性’就是不真实的,所以并不能解决当前的问题。”

查看英文原文New Renaissance Performance Benchmark Aims to Compare JVMs

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章