写点什么

Renaissance:比较 JVM 性能的新基准

  • 2019-06-18
  • 本文字数:1285 字

    阅读完需:约 4 分钟

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


2019-06-18 08:006558
用户头像

发布了 331 篇内容, 共 230.8 次阅读, 收获喜欢 621 次。

关注

评论

发布
暂无评论
发现更多内容

Python入门-位运算

123568

Python 入门 位运算

得不到的永远在骚动——蔡格尼克效应

Justin

心理学 习惯养成 28天写作 游戏设计

2021MWC上海召开丨5G与千行百业“和合共生”

云计算

华云·云场景应用详解|安超DCM给数据中心“做主”

华云数据

程序员成长第十五篇:编码的注意事项

石云升

程序员 28天写作 2月春节不断更

将上周写的用例画成流程图-第四章,第三讲

mas

(28DW-S8-Day4) 区块链里面2个核心问题

mtfelix

28天写作

修改OpenCV一行代码,提升14%图像匹配效果

Smile

机器学习 OpenCV Python Turtle 图像处理

效率工具分享-Quicker

十天、

效率 效率工具 工具 工具软件

容器 & 服务:Docker应用的Jenkins构建

程序员架构进阶

Docker 容器 七日更 28天写作 2月春节不断更

以AI之名 | 给千万级合同管理安上“AI”,华为商务经理工作量大解放!

华为云开发者联盟

人工智能 华为 合同 商务 合同管理

带你快速了解Flutter的发展和应用

anyRTC开发者

flutter 音视频 WebRTC 跨平台 sdk

工作中当你感觉焦虑的时候,该怎么办?

一笑

28天写作

设计模式【2.2】-- 工厂模式怎么演变成抽象工厂模式?

秦怀杂货店

设计模式 工厂模式 23种设计模式 工厂方法模式

几个小实践带你快速上手MindSpore

华为云开发者联盟

华为 AI mindspore 智慧终端 端边云

CPU高速缓存与极性代码设计

华为云开发者联盟

缓存 数据 cpu 存储

电商平台:收货地址

worry

电商平台

用例画成流程图 - 第四章,第三讲总结

mas

浅谈Python中遇到extend和append,该怎么区别使用

莫陌默

Python 列表 函数

cobra-强大的CLI应用程序库

happlyfox

GitHub cli 28天写作 2月春节不断更 Go 语言

Spark Shuffle 内部机制(三)

hanke

大数据 spark 开源 数据

kafka consumer group

Eric

索引失效的场景

new life

MySQL 索引性能

关于MVCC,我之前写错了,这次我改好了!

艾小仙

Java MySQL 数据库 面试 MVCC

日记 2021年2月24日(周三)

Changing Lin

2月春节不断更

Elasticsearch入门,这一篇就够了

知南茶温暖

现在与以前的你相遇在此刻,让二种不同的风格,创造未来你自己的手艺吧。

叶小鍵

jupyter在加载pkl文件时报错ModuleNotFoundError: No module named 'pandas.core.internals.managers'; '的解决方法

无极限

Python Jupyter Notebook jupyter

Kafka.06 - 数据持久化介绍

insight

kafka 2月春节不断更

windows10+python3.8.0(anaconda)+MeCab安装总结

lauqasim

Python Mecab 日文分词

设计模式之代理模式

Geek_7cf491

Java 设计模式 代理模式

Renaissance:比较 JVM 性能的新基准_语言 & 开发_Erik Costlow_InfoQ精选文章