GraalVM性能

问题描述

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

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

我们的Google搜索没有发现其他内容

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

解决方法

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

比较相同语言的实现比较起来很简单。例如,Renaissance suite适用于Java。

最近有presentation about Ruby,在某些Web应用程序基准测试中比较了Tr​​uffleRuby和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本机图像应用程序与node.js或C / C ++之间有任何直接比较(尽管我想golang与c ++相比会更有趣)。启动时间和内存消耗绝对可以相提并论:从几十/几百毫秒开始,在128 / 256M环境中舒适地运行。