Scala编译期间内存不足错误

时间:2013-11-07 00:37:08

标签: scala sbt shapeless scala-pickling

我正在使用宏重scala-picklingshapeless,并且我一直在崩溃Scala 2.10.3编译器时出现明显的内存不足错误。 错误消息的尾部如下所示:

[error]     <tpt> // tree.tpe=tasks.anonfun$218
[error]     Block( // tree.tpe=Unit
[error]       Apply( // def <init>(): scala.runtime.AbstractFunction1 in class AbstractFunction1, tree.tpe=scala.runtime.AbstractFunction1
[error]         SimpleMiddlebury$$anonfun$218.super."<init>" // def <init>(): scala.runtime.AbstractFunction1 in class AbstractFunction1, tree.tpe=()scala.runtime.AbstractFunction1
[error]         Nil
[error]       )
[error]       ()
[error]     )
[error]   )
[error] )
[error] 
[error] == Expanded type of tree ==
[error] 
[error] ConstantType(value = Constant(anon$326))
[error] 
[error] uncaught exception during compilation: java.io.IOException
[error] Cannot allocate memory

我正在监视我的系统内存,并且有很多,所以如果这确实是内存分配的问题,我猜我可以设置一些JVM标志来解决问题。

但是,我已经尝试通过将paulp's sbt脚本中的堆设置调整为-Xmx8g来增加可用内存,但仍然会出现此错误。 这是正确的旗帜吗?

想法?

编辑:我添加了“scala-pickling”和“shapeless”标签,因为这是其他用户可能遇到的问题。

1 个答案:

答案 0 :(得分:1)

你的sbt安装目录中的

存在一个文件./bin/sbt

将此文件中的-Xss设置更新为更高的阈值。将它设置为-Xss8M足以让我的无形堆栈溢出编译问题消失