对于用原始图像AOT编译的松露解释器,PE如何进行?

问题描述 投票:2回答:1

使用native-image缩短Truffle解释器的启动时间似乎很普遍。

我的理解是,使用本机图像进行AOT编译将导致编译为在专用SubstrateVM中运行的本机代码的方法。

此外,Truffle框架依赖于动态收集的配置信息来确定部分评估哪些节点树。该PE的工作原理是:获取有关节点的JVM字节码,并借助Graal JIT编译器对其进行分析。

这就是我很困惑的地方。如果我们通过本机图像传递Truffle解释器,则每个节点方法的代码将是本机代码。那么,PE如何进行?实际上,Graal甚至可以在SubstrateVM中使用吗?

graalvm graalvm-native-image
1个回答
4
投票

除了解释器的本机代码,SVM还在图像中存储了解释器的表示(一组符合解释器的方法),以进行部分评估。此表示形式的格式不是JVM字节码,而是已解析为Graal IR形式的图形。 PE在这些图上运行,生成甚至更小的,优化的图,然后将其馈送到Graal编译器,因此SVM也在本地映像中附带了Graal编译器。为什么使用Graal图而不是字节码?过去使用字节码,但是直接存储图形可节省(将字节码存储到Graal IR中)解析步骤。

© www.soinside.com 2019 - 2024. All rights reserved.