几种OpenJDK的JVM性能比较

栏目: Java · 发布时间: 6年前

内容简介:JVM有许多不同的选择。哪个最好用?比较几种JVM性能; Zulu OpenJDK,OpenJDK,Oracle JDK,GraalVM CE。在这篇博客中,我将描述我创建的用于同时在不同JVM上执行测试的设置。我还研究了资源隔离的影响(为进程分配特定的CPU和内存)。这种影响可以忽略不计。我的测试应用程序由一个反应性(非阻塞)Spring Boot REST应用程序组成,我使用Prometheus轮询JVM和Grafana进行可视化。除SoapUI外,一切都在Docker容器中运行。使用了以下版本:

JVM有许多不同的选择。哪个最好用?比较几种JVM性能; Zulu OpenJDK,OpenJDK,Oracle JDK,GraalVM CE。

在这篇博客中,我将描述我创建的用于同时在不同JVM上执行测试的设置。我还研究了资源隔离的影响(为进程分配特定的CPU和内存)。这种影响可以忽略不计。我的测试应用程序由一个反应性(非阻塞)Spring Boot REST应用程序组成,我使用Prometheus轮询JVM和Grafana进行可视化。除SoapUI外,一切都在 Docker 容器中运行。

使用了以下版本:

  • GraalVM CE rc9 (8u192)
  • OpenJDK 8u191
  • Zulu 8u192
  • Oracle JDK 8u181

CPU使用率:

GraalVM在测试期间总体CPU使用率最高。Oracle JDK的CPU使用率最低。

响应时间:

整体GraalVM的响应时间最短,OpenJDK最好,紧随Oracle JDK和Zulu。平均而言,OpenJDK和GraalVM之间的差异约为30%。

垃圾收集:

有趣的是,GraalVM加载了比其他JDK更多的类。OpenJDK加载最少的类。GraalVM和OpenJDK之间的差异大约是25%。我还没有确定这是否是GraalVM的固定数量的额外类开销,或者它是否与所使用的类的数量成比例,这是一个固定的百分比。这些额外的类可能导致垃圾收集期间的延迟(尽管这种相关性可能不一定是因果关系)。GraalVM更长GC暂停时间。

内存使用情况:

OpenJDK JVM使用大部分内存。GraalVM和Zulu的垃圾收集行为似乎相似,但GraalVM具有更高的基本内存使用率。Oracle JDK似乎不那么频繁地进行垃圾收集。在查看平均值时,OpenJDK JVM使用的内存最多,而Zulu使用的内存最少。在较长时间内查看缩小的图形时,Oracle JDK和OpenJDK的行为看起来不稳定,并且可能会达到相对较高的值,而Zulu和GraalVM看起来更稳定。

总结:

使用SOAP UI进行了负载测试,其中一个响应式Spring Boot REST应用程序在循环haproxy负载均衡器后面的4个不同JVM上运行。我每隔5秒使用Prometheus轮询JVM实例(使用Micrometer生成数据),并使用Grafana和Prometheus来显示数据。结果表明GraalVM不适合作为OpenJDK的替代品,因为它表现更差,使用更多资源,加载更多类并在垃圾收集中花费更多时间。

  • GraalVM为同一个应用程序加载更多类
  • GraalVM导致应用程序的响应时间最慢
  • GraalVM使用大多数CPU(以实现最慢的响应时间)
  • GraalVM使用大部分时间进行垃圾收集
  • Zulu OpenJDK使用比较JVM的最少内存。与Oracle JDK和OpenJDK相比,Zulu OpenJDK和GraalVM的内存使用更稳定。

当然,由于GraalVM相对较新,Micrometer提供的指标可能无法正确显示实际吞吐量和资源使用情况。也可能是我的设置有负责导致这种差异。我试图通过查看不同情况下的指标来排除第二个问题。

如果您想使用GraalVM的多语言功能,当然其他JVM不提供合适的替代方案。GraalVM也提供了我没有测试的本机编译选项(我在同一个JAR上执行了测试)。此功能可能会大大提高性能。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

叠加体验:用互联网思维设计商业模式

叠加体验:用互联网思维设计商业模式

穆胜 / 机械工业出版社 / 2014-11 / 39.00

本书在互联网思维改变一切的背景下,详细介绍了如何运用互联网思维重构商业模式,主要包括以下内容:①互联网经济中的商业逻辑(即“互联网思维”),不仅给出了消费方面的逻辑变革,还给出了在生产端的逻辑变革以及“跨界”的逻辑变革。②给出了一个“三层产品体验模型”,厘清了互联网思维,打造完美终端、云端服务和价值群落三层体验,企业可以选择做不同层面的体验组合,这即是选择了不同的市场策略。但是,企业要基业长青,终......一起来看看 《叠加体验:用互联网思维设计商业模式》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具