gpt4 book ai didi

scala - 设置 SBT 的堆栈大小

转载 作者:行者123 更新时间:2023-12-01 04:54:05 24 4
gpt4 key购买 nike

我正在使用我专门构建的 Scala 运行 SBT。我构建的 Scala Compiler 会在运行时做很多事情,有很多函数调用,可以递归。

因此,当我使用我构建的 Scala 编译器运行 SBT 时,很长时间后堆栈溢出。我尝试在启动 SBT 时设置 -J-Xss。但这不起作用。

我之前遇到过 SBT 堆大小的问题。许多帖子说在启动 SBT 时设置 -J-Xmx 不会改变 JVM 堆大小,因为它被默认的 SBT 内存选项覆盖。
How to set heap size for sbt?

现在,我想知道 -J-Xss 是否可以被默认 SBT 选项覆盖,就像 -J-Xmx 被覆盖一样。或者我应该简单地尝试将 -J-Xss 设置得更大?

最佳答案

有多种方法可以做到这一点,但这取决于您要实现的目标。例如,如果您想要更大的堆来运行测试,请查看此处采用的辅助方法。

SBT_OPTS

首先你可以简单地设置环境变量SBT_OPTS加载自身时 SBT 将在 native 查找哪个,这应该覆盖您要指定的任何设置。

export SBT_OPTS = "-Xmx1G;-Xms256m;...";

自定义启动器

实现相同目的的另一种方法是基本上创建自定义 SBT 启动脚本。看看例子 here .

用于测试

如果要修改测试选项,需要使用 javaOptions in ThisBuild ++= Seq("-Xmx1g", ...) .要让它们运行,您总是需要 fork in Test := true ,这将创建一个用于运行测试的 fork JVM。否则,将不会遵守指定的选项。

关于scala - 设置 SBT 的堆栈大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38714107/

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