我有这段代码:
var nodeMap:Map[Int, List[Node]] = Map[Int, List[Node]]()
nodeMap = Map[Int, List[Node]]() ++ nodes.par.groupBy( x => x.getClosest(centers))
x.getClosest返回一个Int。当我去编译它时,编译器崩溃说它没有内存。但是,当我这样做时:
var nodeMap:Map[Int, List[Node]] = Map[Int, List[Node]]()
nodeMap = nodes.groupBy( x => x.getClosest(centers))
工作正常。
为什么呢?
答案 0 :(得分:5)
Scala编译器在复杂表达式方面存在一些问题;如果你的内存不合适(即OutOfMemoryException)它可能是一个bug,但更常见的情况是编译器耗尽堆栈空间,在这种情况下你可以添加标志-Xss=256m
(其中数字是显然由你来解决这个问题。这在复杂表达式(例如字符串和列表连接)中尤为常见。