增加Scala的JVM堆大小?

时间:2009-09-17 21:09:41

标签: command-line scala jvm heap

我有一个Scala数据处理工具,它失败了java.lang.OutOfMemoryError异常。该工具需要对一个大型数据文件(我正在处理的文件超过700MB)进行一次传递,因此如果将整个文件存储在内存中会很方便。

我使用“scala”运行程序从命令行或Bash脚本运行该工具。如何为此增加JVM堆大小?我试过传递-Xmx1024m,但它不承认这个论点。我正在使用每晚Scala 2.8.0(r18678)。

5 个答案:

答案 0 :(得分:113)

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

scala -J-Xmx2g ...

答案 1 :(得分:25)

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

答案 2 :(得分:21)

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

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

答案 3 :(得分:2)

修改JAVA_OPTS

答案 4 :(得分:0)

作为黑客,您可以编辑scala/bin/scala文件以编辑java命令的参数。不漂亮。