Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 设置SBT的堆栈大小_Scala_Sbt - Fatal编程技术网

Scala 设置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设置得更大

我正在使用特制的Scala运行SBT。我构建的Scala编译器在运行时会做很多事情,有很多函数调用,可以是递归的

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

我以前遇到过SBT堆大小的问题。许多帖子说,启动SBT时设置-J-Xmx不会改变JVM堆大小,因为默认SBT内存选项会覆盖它。


现在,我想知道-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选项。