写点什么

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

发布了 306 篇内容, 共 202.1 次阅读, 收获喜欢 599 次。

关注

评论

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

Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day20,从java后端到全栈百度云

Java 程序员 后端

Java是未来的第一编程语言吗?,linux内核架构pdf免费下载

Java 程序员 后端

JAVA数组,nginx教程从入门到精通

Java 程序员 后端

Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day34,rabbitmq集群同步原理

Java 程序员 后端

Java并发编程---Java多线程基本概念(1),java多线程下载视频

Java 程序员 后端

[ CloudWeGo 微服务实践 - 03 ] 小项目尝试

baiyutang

golang 微服务 10月月更

文本前后空格去除工具

入门小站

工具

Java开发必须要会!java微服务技术栈,菜鸟教程linux教程

Java 程序员 后端

Java安全之反序列化回显与内存码,java面试个人规划

Java 程序员 后端

Java实现文件切割拼接,MongoDB数据分布不均的解决方案

Java 程序员 后端

Java并发系列终结篇:彻底搞懂Java线程池的工作原理(1)

Java 程序员 后端

王者荣耀商城异地多活架构设计

Rabbit

Java架构师面试之Netty面试专题及答案(共10题,含详细解答

Java 程序员 后端

Java并发编程---Java多线程基本概念,java高并发编程详解pdf百度网盘

Java 程序员 后端

Java应用日志如何与Jaeger的trace关联,mybatis多表查询原理

Java 程序员 后端

Java异常架构与异常关键字,java引用类型和基本类型的区别面试

Java 程序员 后端

Java性能优化的35个细节(珍藏版),文末有福利

Java 程序员 后端

Java是未来的第一编程语言吗?(1),java多线程常见面试题

Java 程序员 后端

Java常用类使用总结,linuxshell教程

Java 程序员 后端

Java并发原理抽丝剥茧,读写锁ReadWriteLock实现深入剖析

Java 程序员 后端

Java异常面试题(2020最新版),mongodb入门

Java 程序员 后端

java教程——泛型,java反射原理三种

Java 程序员 后端

linux中删除特殊文件

入门小站

Linux

Java并发系列终结篇:彻底搞懂Java线程池的工作原理,nginx性能优化面试题

Java 程序员 后端

Java异常处理的误区和经验总结,2021最新网易Java面试题目

Java 程序员 后端

java教程——注解,Java程序员校招蚂蚁金服

Java 程序员 后端

Java学到什么程度才算精通?,springmvc原理图解

Java 程序员 后端

Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day14,mybatis常见面试题

Java 程序员 后端

Java开源生鲜电商平台-支付模块的设计与架构(源码可下载)

Java 程序员 后端

Java是动态语言吗?JavaCompiler实现动态编译,并通过反射赋值

Java 程序员 后端

java架构师常见的基础面试题及答案(一),这个回答让我错失offer

Java 程序员 后端

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