我有一个带有以下标头的 scala shell 脚本:
#! /bin/sh
env JAVA_OPTS="-Xmx20g"
exec scala -classpath ./target/scala-2.9.1/classes:lib/* "$0" "$@"
!#
不幸的是,无论我如何设置 JAVA_OPTS 变量,程序都会因内存不足错误而终止。
如何在这样的 shell 脚本中正确配置堆大小而不弄乱全局 JAVA_OPTS 环境变量?
我有一个带有以下标头的 scala shell 脚本:
#! /bin/sh
env JAVA_OPTS="-Xmx20g"
exec scala -classpath ./target/scala-2.9.1/classes:lib/* "$0" "$@"
!#
不幸的是,无论我如何设置 JAVA_OPTS 变量,程序都会因内存不足错误而终止。
如何在这样的 shell 脚本中正确配置堆大小而不弄乱全局 JAVA_OPTS 环境变量?
来自 Scala 帮助:
到达 java 运行时的 scala 选项:
...
-J<arg> -J 被剥离并按原样传递给 java
因此,您可以-J-Xmx20g
向 scala 添加参数。
为 Scala REPL 使用的 JVM 提供命令行选项:
$ env JAVACMD=JAVA JAVA_OPTS="-Xmx1024M -Xms16M -Xss16M" scala
从 REPL 验证:
val r = Runtime.getRuntime
println("Memory usage: "+ (r.totalMemory - r.freeMemory) + " of " + r.maxMemory)
内存使用量:66712264 of 954728448