如何增加 Groovy 的 JVM 堆大小?

Posted

技术标签:

【中文标题】如何增加 Groovy 的 JVM 堆大小?【英文标题】:How do I increase Groovy's JVM Heap Size? 【发布时间】:2011-07-24 11:28:45 【问题描述】:

Some sources 在网络上声称我应该能够将 -Xmx 参数提供给 groovy,但这只是在找不到 -Xmx 文件时给了我java.io.FileNotFoundException。 Other sources 告诉我设置一些名为 JAVA_OPTS 的变量,但我该怎么做呢?我怎么知道它是否有效?

【问题讨论】:

【参考方案1】:
$ export JAVA_OPTS="$JAVA_OPTS -Xmx64M"
$ groovy

【讨论】:

【参考方案2】:

更新:转到您的 Groovy 主文件夹并进入 bin 目录。在 startGroovy.bat 中,您可以将其从 128MB 设置为 512MB,如下所示:

...
@rem set GROOVY_OPTS="-Xmx128m"
set GROOVY_OPTS="-Xmx512m"
...

【讨论】:

【参考方案3】:

找到了另一种在 Windows 上执行此操作而无需修改 JAVA_OPTS 等的方法。转到您的 Groovy 主文件夹并进入 bin 目录。如果您通过调用 groovy.bat 文件来调用 Groovy,如果您查看它,您会看到它依次运行 startGroovy.bat。在 startGroovy.bat 中,在脚本的最后几行中,您会发现如下内容:

@rem Execute Groovy
"%JAVA_EXE%" %JAVA_OPTS% -classpath "%STARTER_CLASSPATH%" %STARTER_MAIN_CLASS% --main %CLASS% --conf "%STARTER_CONF%" --classpath "%CP%" %CMD_LINE_ARGS%

在 %JAVA_OPTS% 和 -classpath 之前添加您需要分配的 Xmx 开关和内存,这样您就有了这样的内容:

@rem Execute Groovy
"%JAVA_EXE%" %JAVA_OPTS% -Xmx256M -classpath "%STARTER_CLASSPATH%" %STARTER_MAIN_CLASS% --main %CLASS% --conf "%STARTER_CONF%" --classpath "%CP%" %CMD_LINE_ARGS%

现在,当您运行 Groovy 时,-Xmx 值将是它使用的分配内存。这种方法的好处是,您无需在每次想要更改堆大小时重新加载 env 变量,并且您可以细粒度地控制 Groovy 正在使用的 JVM 所做的事情。

【讨论】:

以上是关于如何增加 Groovy 的 JVM 堆大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何以及在何处配置 DSE Opscenter 堆大小和任何其他 JVM 参数

关于增加 JVM 的堆大小

JVM 的堆大小不断增加(但 usedMemory() 不断减少)

如何设置一个非常大的 JVM 堆大小?

如何减少 JVM 中的已提交堆内存

jvm调优 - 堆空间各区域大小如何划分配置?