运行Kotlin脚本时要设置JVM最大堆大小吗?

时间:2019-07-01 10:29:36

标签: kotlin

我正在使用以下命令运行Kotlin脚本

kotlinc -script myscript.kts

这会进行一些非常繁重的数据处理,并迅速遇到GC /堆空间错误(例如java.lang.OutOfMemoryError: GC overhead limit exceededjava.lang.OutOfMemoryError: Java heap space,具体取决于脚本处理的内容)。

运行Kotlin脚本时是否有增加JVM堆大小的方法?尝试使用:

kotlinc -Xmx8g -script myscript.kts

给出警告:

warning: flag is not supported by this version of the compiler: -Xmx8g

1 个答案:

答案 0 :(得分:2)

在查看了实际的kotlinc bash脚本之后,通过以下行根据环境变量设置堆大小调整选项:

[ -n "$JAVA_OPTS" ] || JAVA_OPTS="-Xmx256M -Xms32M"

在执行kotlin脚本之前设置此环境变量可以增加堆大小。

对于上面的示例,以下在Linux / MacO上有效:

$ export JAVA_OPTS="-Xmx8g"
$ kotlinc -script myscript.kts

在Windows上:

set JAVA_OPTS="-Xmx8g"