如何增加Groovy的JVM堆大小?

如何增加Groovy的JVM堆大小?

问题描述:

Some sources在网络上声称,我应该能够给-Xmx参数groovy,但只是当它找不到-Xmx文件时,它给我java.io.FileNotFoundExceptionOther sources告诉我设置一个名为JAVA_OPTS的变量,但我该怎么做?我怎么知道它是否有效?如何增加Groovy的JVM堆大小?

$ export JAVA_OPTS="$JAVA_OPTS -Xmx64M" 
$ groovy 
+0

'无效的最大堆大小:-Xmx = 64M无法创建Java虚拟machine.'我刚才打破这一切呢? – jonalv 2011-03-28 13:12:05

+2

愚蠢的我..不需要'='..编辑我的答案 – 2011-03-28 13:15:24

找到了另一种方法在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% 

添加XMX开关和内存需要经过%JAVA_OPTS%和-classpath之前分配的,所以你有什么像这样:

@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主文件夹并进入bin目录。在startGroovy.bat,你可以从128MB将它设置为512MB这样的:

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