如何增加Scala中JVM的堆大小?

54

我有一个使用Scala编写的数据处理工具,出现了一个java.lang.OutOfMemoryError异常。 这个工具需要对一个大型数据文件进行几次遍历(我正在处理的文件超过700MB),因此如果整个文件可以存储在内存中,那将非常方便。

我使用命令行或Bash脚本使用“scala”运行器来运行该工具。如何增加JVM堆大小以解决问题? 我尝试了传递参数-Xmx1024m,但它没有识别这个参数。 我正在使用Scala 2.8.0(r18678)的夜间版本。

5个回答

123

您可以通过 -J 将选项传递给 JVM。例如:

scala -J-Xmx2g ...

快速简单的解决方案,谢谢!我想知道为什么 man 手册没有显示出来这个呢? - markc

26

JAVA_OPTS环境变量用于指定传递给java命令的选项。有关详细信息,请参阅Scala manpage


22

根据Joe的建议,我查看了这个Scala程序,它是一个调用Java并带有各种Scala特定参数的Bash脚本。它允许通过JAVA_OPTS环境变量传递额外的命令行参数给Java。因此,您可以像这样增加堆大小:

JAVA_OPTS="-Xmx2g" scala classname arguments...

2

编辑JAVA_OPTS


-1
作为一种hack,您可以编辑scala/bin/scala文件以编辑java命令的参数。不太美观。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接