写点什么

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:006937
用户头像

发布了 469 篇内容, 共 326.9 次阅读, 收获喜欢 679 次。

关注

评论

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

统一观测丨使用 Prometheus 监控云原生网关,我们该关注哪些指标?

阿里巴巴云原生

阿里云 云原生 Prometheus 云原生网关

中文技术文档的写作规范参考

面向工资Coding

对比开源丨Prometheus 服务多场景存储压测全解析

阿里巴巴云原生

阿里云 开源 云原生 Prometheus

Portraiture2023最新版本下载安装图文教程

茶色酒

Portraiture Portraiture4

拆分电商系统为微服务

Geek_7d539e

2023-02-19:请用go语言调用ffmepg,输出视频文件信息。

福大大架构师每日一题

golang ffmpeg 福大大

信源分类及数学模型

timerring

信息 信息论 信息论与编码

React源码解读之React Fiber

flyzz177

用javascript分类刷leetcode17.栈(图文视频讲解)

js2030code

JavaScript LeetCode

建议收藏,轻松搞懂区块链!

蔡农曰

比特币 区块链 后端 比特币区块链

责任链和策略设计模式-基于Java编程语言

京东科技开发者

Java spring 代码规范 京东云 京东技术

ChatGPT入门案例|商务智能对话客服(三)| 社区征文

TiAmo

openai ChatGPT

LeetCode:240. 搜索二维矩阵 II,直接查找,详细注释

Lee Chen

JavaScript 算法 LeetCode

架构误区系列13:令人迷惑的继承

agnostic

继承

会声会影2023官方正式版本功能介绍

茶色酒

会声会影2023

Python设置显示屏分辨率

Python 分辨率

JavaScript刷LeetCode心得

js2030code

JavaScript LeetCode

CnosDB成为首个产品支持SQLancer的云原生时序数据库

CnosDB

时序数据库 开源社区 CnosDB 工程师有话说

产品团队业务思维的重要性

Bruce Talk

敏捷 Agile

在线头脑风暴软件Mural及其竞品分析

hongfei

思维导图 工具软件 头脑风暴

面试官:限流算法有哪些?

王磊

java面试

前端工程师leetcode算法面试必备-简单的二叉树

js2030code

JavaScript LeetCode

「 Java基础-链式调用 」Java开发中如何让你的代码看起来更优雅?试试链式调用?

小刘学编程

Java 设计模式 建造者模式

应对ChatGPT,中国AI需要这三种能力

脑极体

百度 飞桨 文心

前端标准化之旅

京东科技开发者

前端 代码规范 京东云 京东技术

云计算未来 5 年发展方向大盘点

亚马逊云科技 (Amazon Web Services)

人工智能

React Context源码是怎么实现的呢

flyzz177

React

ReactDOM.render在react源码中执行之后发生了什么?

flyzz177

React

快速制作一个chrome插件

JYeontu

chrome Vue chrome扩展 Chrome插件

架构实战营10期-作业7

炮仗

FL Studio最新发布21中文正式版本下载

茶色酒

FL Studio 21

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