java - GraalVM 性能

标签 java benchmarking microbenchmark graalvm

<分区>

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

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

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

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

最佳答案

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

比较相同语言的实现是比较简单的。例如,Renaissance suite为 Java 做到这一点。

最近有一个 presentation about 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 上运行,参见 the docker file for their submission

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

关于java - GraalVM 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63712022/

相关文章:

java - 如何在 Eclipse 中批量修复 Java 包

c# - 在这种情况下,为什么 .NET 比 C++ 快?

python - 使用 IPython 测量(最大)内存使用情况——类似于 timeit 但 memit

c++ - 为什么标准 R 中值函数比简单的 C++ 替代函数慢得多?

java - 在 JMH 中对 ArrayList.add() 进行基准测试时出现 OutOfMemoryError

java - 我如何找出 JVM 忽略 linux 上的 kill -15 (SIGTERM) 的原因?

java - 查找字符串中连续重复字符的最大数量

java - 调用 C# Web 服务时出现意外响应代码 500

java - 估计实现的实际(非理论)运行时复杂性

c - 为什么不同的测试有完全相同的数字?