内存使用

JVM内存使用情况很有意思。 如上图所示,OpenJDK JVM使用的内存堆垛。 GraalVM和Zulu的垃圾收集行为似乎相似,但GraalVM具有更高的内存使用率。 Oracle JDK垃圾收集并不频繁。 在查看平均值时,OpenJDK JVM使用最大内存,而Zulu使用最少内存。 在较长时间内衡量时,Oracle JDK和OpenJDK的行为看起来不稳定,而Zulu和GraalVM看起来更稳定。

总结
在本次测试中,我使用SOAP UI对运行在4个不同JVM上的Spring Boot Rest程序进行了压力测试。我使用Prometheus轮询JVM实例(每5s轮训一次,用Micrometer生成数据),并使用Grafana和Prometheus来显示数据。结果表明GraalVM不适合作为OpenJDK的替代品,因为它的表现更差,使用了更多资源,加载更多类而且垃圾收集时间更长。
GraalVM加载的类更多
GraalVM 上的应用程序响应时间最慢
GraalVM的CPU使用率最高(响应时间最慢)
GraalVM的GC时间最长
Zulu OpenJDK使用的内存最少。与Oracle JDK和OpenJDK相比,Zulu OpenJDK和GraalVM的内存使用更稳定。
当然,由于GraalVM相对较新,Micrometer提供的指标可能无法正确显示实际吞吐量和资源使用情况。也可能是我的设置导致这种差异。我通过查看不同情况下的结果来排除第二个问题。
如果您想使用GraalVM的多语言功能,那么其他JVM无此功能。GraalVM也提供了本地编译选项(我在同一个JAR上执行了测试)。此功能可能会大大提高性能。
原文地址:https://technology.amis.nl/2018/11/23/comparing-jvm-performance-zulu-openjdk-openjdk-oracle-jdk-graalvm-ce/#prettyPhoto
本文作者Maarten Smeets,由方圆翻译。转载本文请注明出处,欢迎更多小伙伴加入翻译及投稿文章的行列,详情请戳公众号菜单「联系我们」。GIAC全球互联网架构大会深圳站将于2019年6月举行,届时将有Java专题深入探讨相关话题,敬请期待。
参考阅读:
技术原创及架构实践文章,欢迎通过公众号菜单「联系我们」进行投稿。转载请注明来自高可用架构「ArchNotes」微信公众号及包含以下二维码。
高可用架构
改变互联网的构建方式
长按二维码 关注「高可用架构」公众号
,