GraalVM 性能

Ant*_*ton 3 java benchmarking microbenchmark graalvm

我们正在为我们的堆栈评估 GraalVM。主要考虑因素之一是性能,这里有一些基准: https: //renaissance.dev/

问题是我们希望看到其他语言实现的基准,而不是 OpenJDK 和 GraalVM 版本之间的基准。我唯一能找到的就是这篇文章,将它与 C2 进行比较。https://medium.com/graalvm/graalvm-20-1-7ce7e89f066b

我们的谷歌搜索没有发现任何其他结果。

我们在哪里可以找到更广泛的、跨语言的 GraalVM 基准测试?

Ole*_*jev 6

老实说,这是一个非常复杂的问题。这在很大程度上取决于工作量、语言等。

比较同一语言的实现比较简单。例如,Renaissance 套件就为 Java 做到了这一点。

最近有一个关于 Ruby 的演示,在一些 Web 应用程序基准测试中将 TruffleRuby 与 CRuby 进行了比较。

对于 JavaScript,我们看一下 Graal.js 与 V8。需要特别注意的一件事是 Graal.js 的启动时间较长。因为显着更长。目前,您需要对代码进行大量预热,有时需要几分钟。GraalVM 团队正在致力于改进启动,但很可能仍然需要一些预热。一般来说,在我们的基准测试中,预热后的性能与 V8 相当,通常会慢一些。如果您特别希望在 Web 应用程序的上下文中实现这一点,那么您不仅可以查看 Node.js 应用程序,还可以查看例如es4x项目。为什么我要提出这个问题,因为例如 TechEmpower 基准测试通过让条目实现具有数据库访问的预定义​​ Web 应用程序并在多个场景中测试它来模拟现实世界场景,并按语言提供结果。以下是 JavaScript 过滤的最新结果:https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=composite&l=zik0sf-1r

Es4x 的分数提高了近 2 倍,并且他们的提交确实在 GraalVM 上运行,请参阅他们提交的 docker 文件

我不知道 GraalVM 原生图像应用程序与 Node.js 或 C/C++ 之间有任何直接比较(尽管我认为 golang 会比 C++ 更有趣)。启动时间和内存消耗肯定是相当的:在几十/几百毫秒内启动,在 128/256M 环境中舒适地运行。