gpt4 book ai didi

javascript - 使用 GraalVM 在 Java 中评估 JavaScript

转载 作者:行者123 更新时间:2023-11-30 06:21:07 36 4
gpt4 key购买 nike

到目前为止,我们已经使用 Nashorn 评估我们 Java 项目中的 JS 代码。Nashorn 有几个已知的缺点,我们想转向 GraalVM。

所以我们做了一个小的 POC 并遇到了几个问题,我希望你能帮助我们 :)

我们的业务用例:我们为用户提供了一个平台,可以根据以下接口(interface)编写自定义js代码:

function process(record, ctx, logger, next) {
if (record && record.data){
record.data.firstName = "Joe";
}
return record;
}

record 代表我们的内部模型,它是一个 Java Map。

我们想从我们的 Java 代码中调用“进程”函数并提供参数。

几个问题:

  1. 根据最佳实践,最好的方法是什么?'record' 参数是一个 Java Map 对象,代表我们的内部模型。当我们将它发送到流程函数时,我们希望它作为一个标准的 js 对象来处理,以便我们的用户可以根据 ECMA 编写标准的 js 代码。正确的做法是什么?
  2. 当我们运行几个测试时,我们注意到 Nashorn 的性能优于 Graalvm,这是有道理的还是我们可能做错了什么?

我们非常感谢您的帮助,并希望尽快迁移到 Graalvm。

最佳答案

  1. 如果您使用的是 GraalVM 多语言 API,请查看 ProxyObjects ( https://www.graalvm.org/truffle/javadoc/org/graalvm/polyglot/proxy/ProxyObject.html )。我认为这可能是您最好的选择。

  2. GraalVM JS 实现应该绝对优于 Nashorn,但可能需要进行几次预热迭代才能实现。您是否在测量中考虑了预热?

关于javascript - 使用 GraalVM 在 Java 中评估 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53030072/

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