对于开发人员来说,GraalVM 19.3 的 CE 和 EE 版本之间有什么区别?

Tho*_*sen 7 java graalvm graalvm-native-image

随着最近发布的 GraalVM 19.3,它增加了对 Java 11 的支持,这让我们再次回顾起来很有趣。Oracle有免费社区版和非免费企业版两个版本是可以理解的,但是对于两者之间的实际区别是什么,他们非常模糊。

常见问题解答说:

Oracle GraalVM 企业版和 GraalVM 社区版有什么区别?GraalVM Enterprise 有几个关键的进步,使其成为企业的首选产品,而不是 GraalVM 社区,包括:

  • 通过更高的峰值性能和更低的内存占用提高效率,从而降低基础架构成本并缩短应用程序反应时间
  • 改进的安全功能可保护您跨所有语言的应用程序
  • 企业支持 24x7x365,让您高枕无忧,您的环境得到全球 GraalVM 专家的支持

对于需要关键任务应用程序支持的人来说,最后一项是可以理解的,但我发现前两项相当模糊。

因此,我想听听实际使用 GraalVM 的人的意见,如果差异可以很容易地总结出来——特别是如果有“这对我们有什么好处”——数据的支持——让开发人员找出企业版会给我们带来什么。特别是从 docker/kubernetes 视图上的本机图像来看,因为我们目前的主要用例是基于 Java 的微服务(目前基于 Spring Boot,但 microprofile WAR 方法很有趣,可以摆脱运行时的脆弱性)。

小智 4

在性能方面,企业版 (EE) 增加了矢量化、最先进的内联、压缩 oops、配置文件引导优化……还有发出调试符号的能力。您可以构建更快的本机映像,消耗更少的内存,可以针对您的工作负载进行专门调整,并且所有这些都可以由本机工具(gdb)使用。

在安全方面,有可选的 Spectre 缓解措施,但会牺牲一些性能。还有 Sulong 管理,它允许以安全的方式运行本机代码(编译为 LLVM 位代码),想想 ArrayIndexOutOfBoundsException 而不是段错误。

这个答案绝对不全面,一旦某些功能开源到社区版和/或 GraalVM 团队向企业版添加更高级的功能,它可能就会过时。