我有一个Scala数据处理工具,它失败了,出现了一个java.lang.OutOfMemoryError异常。这个工具需要对一个大的数据文件(我正在处理的文件超过700MB)进行几次遍历,所以如果整个数据文件都能存储在内存中,那就太方便了。我从命令行或Bash脚本中使用scala运行器运行该工具。如何增加JVM堆的大小?我尝试过传递-Xmx1024m,但它无法识别此参数。我使用的是Scala 2.8.0(r18678)的夜间构建版本。
java.lang.OutOfMemoryError
-Xmx1024m
zfciruhq1#
您可以通过-J将选项传递给JVM。例如,
scala -J-Xmx2g ...
i7uq4tfw2#
JAVA_OPTS环境变量用于指定传递给java命令的选项。有关详细信息,请参阅Scala manpage。
y4ekin9u3#
根据Joe的建议,我研究了scala程序,这是一个Bash脚本,它使用各种Scala特定参数调用java。它允许通过JAVA_OPTS环境变量将额外的命令行参数传递给Java。因此,您可以像这样增加堆的大小:
JAVA_OPTS="-Xmx2g" scala classname arguments...
ssm49v7z4#
编辑JAVA_OPTS。
JAVA_OPTS
yx2lnoni5#
作为一个黑客,你可以编辑scala/bin/scala文件来编辑java命令的参数。不漂亮。
scala/bin/scala
java
5条答案
按热度按时间zfciruhq1#
您可以通过-J将选项传递给JVM。例如,
i7uq4tfw2#
JAVA_OPTS环境变量用于指定传递给java命令的选项。有关详细信息,请参阅Scala manpage。
y4ekin9u3#
根据Joe的建议,我研究了scala程序,这是一个Bash脚本,它使用各种Scala特定参数调用java。它允许通过JAVA_OPTS环境变量将额外的命令行参数传递给Java。因此,您可以像这样增加堆的大小:
ssm49v7z4#
编辑
JAVA_OPTS
。yx2lnoni5#
作为一个黑客,你可以编辑
scala/bin/scala
文件来编辑java
命令的参数。不漂亮。