我正在使用以下命令运行 Kotlin 脚本:
kotlinc -script myscript.kts
Run Code Online (Sandbox Code Playgroud)
这会进行一些非常繁重的数据处理,并且很快就会遇到 GC/堆空间错误(例如java.lang.OutOfMemoryError: GC overhead limit exceeded或java.lang.OutOfMemoryError: Java heap space取决于脚本处理的内容)。
有没有办法在运行 Kotlin 脚本时增加 JVM 堆大小?尝试使用:
kotlinc -Xmx8g -script myscript.kts
Run Code Online (Sandbox Code Playgroud)
给出警告:
warning: flag is not supported by this version of the compiler: -Xmx8g
Run Code Online (Sandbox Code Playgroud)
查看实际的kotlincbash 脚本后,堆大小选项是根据以下行的环境变量设置的:
[ -n "$JAVA_OPTS" ] || JAVA_OPTS="-Xmx256M -Xms32M"
Run Code Online (Sandbox Code Playgroud)
在执行 kotlin 脚本之前设置此环境变量可以增加堆大小。
对于上面的示例,以下内容适用于 Linux/MacO:
$ export JAVA_OPTS="-Xmx8g"
$ kotlinc -script myscript.kts
Run Code Online (Sandbox Code Playgroud)
在 Windows 上:
set JAVA_OPTS="-Xmx8g"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1581 次 |
| 最近记录: |