问题标签 [graalvm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - GraalVM JVM 是否支持 java 11?
如何为Java 11构建GraalVM JVM?
javascript - 如何使用 GraalVM 创建 node.js 原生镜像
我正在尝试从一个简单的 node.jsexample.js
应用程序创建本机图像。
运行应用程序时:
然后应用程序正在启动并按预期工作。
现在我想创建一个原生图像。我尝试了以下命令:
但是由于以下错误,它不起作用:
作为一项解决方案,我创建了一个主要入口点,example.js
例如:
但是这不起作用。
有没有一种方法通常为 js/node.js 应用程序创建原生图像?
scala - 为什么 GraalVM CE 的吞吐量比 GraalVM EE 或 OpenJDK 8 小
我为使用动态编程找出最长公共子序列的方法创建了一个基准:
并使用以下配置运行它jmh:run -i 10 -wi 10 -f1 -t1
并得到以下结果:
GraalVM EE 1.0.0-rc10
GraalVM CE 1.0.0-rc10
OpenJDK 1.8.0_192
我还做了另一个测试,我创建了一个包含数千个对象的列表,对其进行了一些过滤和排序,并且thrpt
在 GraalVM CE 上是最小的。
为什么会有这种差异?
java - OpenJDK的虚拟机是可插拔的吗?
在以前的时代,这很容易。我们使用了java和虚拟机这两个词的同义词。
现在我们有了 Hotspot VM (Oracle JDK)、OpenJDK Server VM、Eclipse OpenJ9 VM 和Graal VM。
我有点困惑。OpenJDK 是否拥有或者是一个可以与不同虚拟机实现结合使用的运行时环境?是否有为此的标准接口,或者它只是由 OpenJDK 支持。
我要求作为java -version
两个 OpenJDK 变体的运行输出,并且 Graal VM 在每种情况下都包含OpenJDK rintime
:
我知道网上有很多关于这个问题的文件,但我读过的这些文件都没有给出关于这个主题的安全知识状态。
javascript - GraalVm - Java 复杂对象不能像 javascript 对象一样被解析
我正在尝试从 nashorn 迁移到 graalvm (java 11)。我有很多java脚本。
说明 -> 以 maven libs org.graalvm.js: graal-sdk, js, js-scriptengine, org.graalvm.truffle: truffle-api 的形式连接到 java 项目。版本 1.0.0-rc9。
ScriptEngine 创建像 'new ScriptEngineManager().getEngineByName("graal.js")';
然后您可以在地图中的数组中创建地图,例如:
然后将 mapOuter 转换为 ProxyObject,如 ProxyObject.fromMap(mapOuter);
使用如下代码评估测试 JavaScript:
这将调用错误,如:
javax.script.ScriptException: org.graalvm.polyglot.PolyglotException: TypeError: INVOKE on foreign object failed 由于:消息不支持:INVOKE
所以问题是:如何让 graalvm 将复杂的 java 对象正确地传递给 javascript 函数?
ps 我在这个例子中想要的是调用对象,如:
打印(参数[“2”][0][“1”]);
它打印了我 3。
我尝试了什么:
尝试将 outerMap 的每个成员解析为 ProxyObject/ProxyArray。
什么工作
如果你改变 javascript 像:
打印(参数["2"][0].get("1"));
它将打印 3;
graalvm - Substrate VM:无法启动本机图像生成器
我想查看mx图像生成器:
似乎“图像”命令不可用(不再可用?)
任何可用的替代品?谢谢
javascript - GraalVM 如何将 java List 对象传输到 javascript,以便我可以在它们上制作 .push() 和 .forEach()?
问题是当我尝试将 java List (ArrayList) 对象作为 ProxyArray (ProxyArray.fromList()) 传输到 javascript 时,它不能与 .forEach 和 .push 一起使用。此外,如果我按原样传输 java List 对象,它可以与 .forEach 一起使用,但不能与 .push 一起使用。有什么解决办法吗?
这是要点https://gist.github.com/okrean/5d6978bac15f257b90f581f371769935
graalvm - 有人可以解释一下 Graal、GraalVM、Truffle 和 SubstrateVM 之间的区别吗?
我知道这些技术都是相关的,但是有人可以解释一下每种技术的用途以及它们如何组合在一起吗?
simd - GraalVM 是否完全支持 SIMD / AutoVectorization 或与 jdk9+ 一样?
JDK 9 对 SIMD / AutoVectorization 进行了一些重大的性能改进,在许多情况下实现了 2 到 4 倍的改进。Graal VM 是否具有与 jdk9 对 SIMD / Autovectorization 支持的“相同”改进?(事实上,即使在 jdk8 级别它也支持 SIMD / Autovectorization 吗?)
换句话说,Graal VM 最终将支持 jdk11(根据这篇文章:https ://github.com/oracle/graal/issues/651 )这一事实是否意味着它将自动支持 SIMD / Autovectorization(并在至少和 jdk 11 一样好?)
graalvm - 为什么 Graals AOT 编译器比 JIT 慢?
一般来说,当开发人员试图解释为什么(高度调整的)C++ 比 Java 快 2 倍时,他们提到一个因素是 C++ AOT 编译比 JIT 有更多的时间来进行广泛的优化。所以我假设 Graal 中的 AOT 编译会有类似的机会,因此即使它不如 C++ 快,但它至少会比 JIT 编译快——然而,情况似乎并非如此。这是为什么?特别是,是否存在 Graal 的 AOT 编译器会更快的特定场景?相反,是否存在 JIT 比 GRAAL AOTr 更快的情况?(这样,一旦我完全构建了我的解决方案,我就可以就它的有用性做出明智的决定)?