Scala 设置SBT的堆栈大小
我正在使用特制的Scala运行SBT。我构建的Scala编译器在运行时会做很多事情,有很多函数调用,可以是递归的 因此,当我使用构建的Scala编译器运行SBT时,堆栈在很长一段时间后就会溢出。我尝试在启动SBT时设置-J-Xss。但这不起作用 我以前遇到过SBT堆大小的问题。许多帖子说,启动SBT时设置-J-Xmx不会改变JVM堆大小,因为默认SBT内存选项会覆盖它。Scala 设置SBT的堆栈大小,scala,sbt,Scala,Sbt,我正在使用特制的Scala运行SBT。我构建的Scala编译器在运行时会做很多事情,有很多函数调用,可以是递归的 因此,当我使用构建的Scala编译器运行SBT时,堆栈在很长一段时间后就会溢出。我尝试在启动SBT时设置-J-Xss。但这不起作用 我以前遇到过SBT堆大小的问题。许多帖子说,启动SBT时设置-J-Xmx不会改变JVM堆大小,因为默认SBT内存选项会覆盖它。 现在,我想知道-J-Xss是否可以被默认的SBT选项覆盖,就像-J-Xmx被覆盖一样。或者我应该试着将-J-Xss设置得更大
现在,我想知道-J-Xss是否可以被默认的SBT选项覆盖,就像-J-Xmx被覆盖一样。或者我应该试着将-J-Xss设置得更大 有很多方法可以做到这一点,但这取决于你想要达到的目标。例如,如果您想要更大的堆来运行测试,请查看这里采用的第二种方法 SBT_选项 首先,您可以简单地设置环境变量
SBT\u OPTS
,SBT将在加载自身时本机查找该变量,这将覆盖您想要指定的任何设置
export SBT_OPTS = "-Xmx1G;-Xms256m;...";
自定义启动器
实现这一点的另一种方法是基本上创建一个自定义SBT启动脚本。看看这个例子
用于测试
如果您想修改测试选项,您需要在这个build++=Seq(“-Xmx1g”,…)中使用
javaOptions。为了使它们能够运行,您始终需要在测试中使用fork:=true
,这将为运行测试创建一个分叉JVM。否则,指定的选项将不受尊重。谢谢。我发现-J-XSS1000M确实有效。我认为上述方法也可以应用于-Xss选项。