无法为grails中的对象堆保留足够的空间

时间:2014-05-09 08:45:01

标签: grails heap

我正在研究GGTS 3.5和Grails版本2.3.7。当我运行我的项目时,我们面临着堆大小的问题。

Windows 7 32 bit; RAM: 3gb.
Java 1.7 .

我也设置了以下环境变量。

GRAILS_OPTS = -XX:MaxPermSize=1024m -Xmx1024m -server
JAVA_OPTS = -XX:MaxPermSize=1024m -Xmx1024m -server

并在start grails文件中更改了我的GRAILS_OPTS。但仍面临同样的问题。

我刚刚开始使用java和grails,请帮帮我。提前谢谢了。 错误描述:

Loading Grails 2.3.7 
Configuring classpath . 
Environment set to development ................................. 
Packaging Grails application .......................................... 
Running Grails
application Error: Could not create the Java Virtual Machine. 
Error: A fatal exception has occurred. Program will exit. 
Error occurred during initialization of VM 
Could not reserve enough space for object heap
Error | Forked Grails VM exited with error

3 个答案:

答案 0 :(得分:2)

您可能需要更改BuildConfig中的内存参数


grails.project.fork = [
    // configure settings for compilation JVM, note that if you alter the Groovy version forked compilation is required
    //  compile: [maxMemory: 256, minMemory: 64, debug: false, maxPerm: 256, daemon:true],

    // configure settings for the test-app JVM, uses the daemon by default
    test: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, daemon:true],
    // configure settings for the run-app JVM
    run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
    // configure settings for the run-war JVM
    war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
    // configure settings for the Console UI JVM
    console: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256]
]

答案 1 :(得分:2)

以下方法为我解决了问题

GRAILS_HOME \ bin 内,有一个名为 startGrails.bat 的批处理文件

编辑文件并更改提到的Xmx和Xms大小:

set GRAILS_OPTS=-server -Xmx1024M -Xms512M -Dfile.encoding=UTF-8

重启grails。

答案 2 :(得分:0)

对于grails应用程序(在domain子方法内部)中的大量(小)动态groovy代码,也可以减少空闲堆大小。在每个语句上将动态/间接代码更正为局部变量后,堆问题就消失了。