增加grails run应用程序的Xmx和Xms

增加grails run应用程序的Xmx和Xms,grails,Grails,目前,grails存在性能问题。加载我们的一个主页大约需要10秒钟。我检查了一下,发现我们的grails应用程序启动时有512个内存。我们目前可以使用高达3.5千兆的ram 我尝试导出以下内容: export JAVA_OPTS=“-XX:MaxPermSize=1024m-Xmx1024M-server” 在检查了它是如何启动的之后,似乎它仍然是以512m设置启动的。这个集合在哪里?我假设您使用Linux或其他unix变体 不幸的是,(至少在Grails 1.1.1中,$Grails_HOME

目前,grails存在性能问题。加载我们的一个主页大约需要10秒钟。我检查了一下,发现我们的grails应用程序启动时有512个内存。我们目前可以使用高达3.5千兆的ram

我尝试导出以下内容:

export JAVA_OPTS=“-XX:MaxPermSize=1024m-Xmx1024M-server”


在检查了它是如何启动的之后,似乎它仍然是以512m设置启动的。这个集合在哪里?

我假设您使用Linux或其他unix变体

不幸的是,(至少在Grails 1.1.1中,
$Grails_HOME/bin/startGrails
似乎直接在
JAVA_OPTS
中设置了
-Xmx512m
值(在Windows上,
startGrails.bat
仅在您不提供自己的值时设置此值-我想知道unix脚本的行为为何不同)。目前唯一的方法似乎是在
startGrails
中覆盖此设置

请注意,以上仅适用于开发。如果将war部署到应用程序服务器,则将使用服务器启动脚本中的内存设置

更新2010.07.30:正如fabian7474所写,您可以使用
GRAILS\u OPTS
来指定vm参数,现在这是推荐的方法

Csaba的答案不准确

您不需要调整startGrails脚本。这是很危险的,因为下次升级Grails时,您将丢失配置。我甚至不是在谈论一个在多个开发人员之间应该是相同的环境

解决方案非常简单:

  • 定义
    GRAILS\u OPTS=“-XX:MaxPermSize=1024m-Xmx1024M-server”
  • 不要定义
    JAVA\u选项

  • 您的Grails应用程序是在servlet容器中运行的,例如Tomcat,还是使用Grails run app命令?除了在windows StartRails.bat脚本中,没有Grails_选项@6006604从Windows中的命令行运行
    set GRAILS\u OPTS=-XX:MaxPermSize=1024m-Xmx1024M-server
    然后运行您常用的
    GRAILS运行应用程序。使用VirtualVM说服自己设置正在使用。@fabien7474我也有同样的问题,我在ubuntu的.bashrc文件中添加了这个问题
    export GRAILS\u OPTS=“-XX:MaxPermSize=1024m-Xmx1024M-server”
    ,但这没有帮助,我仍然得到相同的错误,这里还缺少什么吗?-server选项有什么作用?还要注意BuildConfig.groovy中的grails.project.fork可以覆盖内存设置。在另一篇帖子上看看这个答案。