GraalVM 性能

GraalVM performance

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

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

我们的 google 搜索没有找到任何其他结果。

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

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

比较同一种语言的实现比较简单。例如,Renaissance suite 为 Java 执行此操作。

最近有一个 presentation about Ruby,在一些 Web 应用程序基准测试中比较了 TruffleRuby 和 CRuby。

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

Es4x 的分数几乎提高了 2 倍,他们的提交在 GraalVM 上 运行,参见 the docker file for their submission

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