我有一个使用Scala编写的数据处理工具,出现了一个java.lang.OutOfMemoryError
异常。 这个工具需要对一个大型数据文件进行几次遍历(我正在处理的文件超过700MB),因此如果整个文件可以存储在内存中,那将非常方便。
我使用命令行或Bash脚本使用“scala”运行器来运行该工具。如何增加JVM堆大小以解决问题? 我尝试了传递参数-Xmx1024m
,但它没有识别这个参数。 我正在使用Scala 2.8.0(r18678)的夜间版本。
我有一个使用Scala编写的数据处理工具,出现了一个java.lang.OutOfMemoryError
异常。 这个工具需要对一个大型数据文件进行几次遍历(我正在处理的文件超过700MB),因此如果整个文件可以存储在内存中,那将非常方便。
我使用命令行或Bash脚本使用“scala”运行器来运行该工具。如何增加JVM堆大小以解决问题? 我尝试了传递参数-Xmx1024m
,但它没有识别这个参数。 我正在使用Scala 2.8.0(r18678)的夜间版本。
您可以通过 -J 将选项传递给 JVM。例如:
scala -J-Xmx2g ...
根据Joe的建议,我查看了这个Scala程序,它是一个调用Java并带有各种Scala特定参数的Bash脚本。它允许通过JAVA_OPTS环境变量传递额外的命令行参数给Java。因此,您可以像这样增加堆大小:
JAVA_OPTS="-Xmx2g" scala classname arguments...
编辑JAVA_OPTS
。
scala/bin/scala
文件以编辑java
命令的参数。不太美观。