gpt4 book ai didi

graalvm - 是否可以将预编译的js存储并加载到org.graalvm.polyglot.Context

转载 作者:行者123 更新时间:2023-12-02 17:12:59 26 4
gpt4 key购买 nike

是否有任何方法可以将 javascript 源代码转换为某种预编译的声明,可以以某种方式存储并加载到 org.graalvm.polyglot.Context 而不是将其作为原始字符串进行评估?类似于 nashorn 中未记录的 --persistent-code-cache

最佳答案

自 2019 年 5 月起,您可以通过在不同 Context 之间重用相同的 Engine 对象,在同一进程中共享代码,以避免重新解析(类似于 Nashorn 代码持久性) >像这样:

try (Engine engine = Engine.create()) {
Source source = Source.create("js", "21 + 21");
try (Context context = Context.newBuilder().engine(engine).build()) {
int v = context.eval(source).asInt();
assert v == 42;
}
try (Context context = Context.newBuilder().engine(engine).build()) {
int v = context.eval(source).asInt();
assert v == 42;
}
}

更多详细信息可以在这里找到:https://www.graalvm.org/docs/graalvm-as-a-platform/embed/#enable-source-caching

我们计划 future 结合 GraalVM 原生镜像工具支持跨进程的持久代码缓存。我们已经支持创建包含 JavaScript 解释器和 GraalVM 编译器的 native 镜像。我们希望添加对允许包含预热脚本的支持,希望也能包含预编译的 JavaScript native 代码。因此,您也许能够以接近于零的启动时间来启动 JS 应用程序。但没有预计到达时间。

关于graalvm - 是否可以将预编译的js存储并加载到org.graalvm.polyglot.Context,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55893836/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com