我正在使用以下命令运行Kotlin脚本
kotlinc -script myscript.kts
这会进行一些非常繁重的数据处理,并迅速遇到GC /堆空间错误(例如java.lang.OutOfMemoryError: GC overhead limit exceeded
或java.lang.OutOfMemoryError: Java heap space
,具体取决于脚本处理的内容)。
运行Kotlin脚本时是否有增加JVM堆大小的方法?尝试使用:
kotlinc -Xmx8g -script myscript.kts
给出警告:
warning: flag is not supported by this version of the compiler: -Xmx8g
答案 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"