Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
当我尝试在 js 中使用深度递归函数时遇到问题,我得到异常(RangeError:超出最大调用堆栈大小)。这个功能完美的工作了 Graal。只有在调用 polyglot 时才会复制它Context.execute()。第一次调用完成无异常但其他抛出。我使用 docker 和 graaljdk 图像oracle/graalvm-ce:20.0.0-java11并为所有线程使用一个引擎并为每个线程创建上下文。我可以通过 graal 选项或其他方式增加节点堆栈大小吗?
Context.execute()
oracle/graalvm-ce:20.0.0-java11
根据您的描述,我假设您正在使用 polyglot API 从一些 Java 代码启动 Graal JS。
Graal JS 与 JVM 的其余部分在相同的线程上运行。您可以使用该-Xss参数增加 JVM 的堆栈大小。例如
-Xss
$ <graalvm>/bin/java -Xss2m …
2m表示 2MB(我认为 x86_64 上的默认值是 1MB)。您可以尝试各种大小,但请记住,您设置的越高,在固定内存量中可以容纳的线程就越少。
2m