2009-08-11 59 views
29

我們目前遇到了grails的性能問題。加載我們的主頁之一需要大約10秒鐘的時間。我檢查了一下,看到我們的grails應用程序啓動時有512個內存。我們目前可以使用高達3.5演唱會價值的ram。grails run-app增加Xmx和Xms

我嘗試導出以下:

出口JAVA_OPTS = 「 - XX:MaxPermSize參數=1024米-Xmx1024M -server」

檢查它是如何開始了它好像它仍然啓動後與512米設置。這個集合在哪裏?

+0

是在servlet容器中運行你的Grails應用程序,例如Tomcat,還是你使用grails run-app命令? – Ruben 2009-08-11 14:50:54

回答

59

Csaba的回答是不準確的。

你不需要調整startGrails腳本。這是危險的,因爲下次你升級Grails時,你將失去你的配置。我甚至沒有談論過多個開發者應該相同的環境!

的解決方案很簡單:

  1. 定義GRAILS_OPTS="-XX:MaxPermSize=1024m -Xmx1024M -server"
  2. 不要定義JAVA_OPTS
+1

感謝您的更新,我也更新了我的答案。 – 2010-07-30 07:56:56

+0

我認爲你也可以改變接受的答案。 – fabien7474 2010-07-30 13:16:40

+0

是不是'GRAILS_OPTIONS'? – Bozho 2010-08-03 11:16:36

7

我假設你使用Linux或其他unix變體。

遺憾的是,似乎(至少在Grails的1.1.1)的$GRAILS_HOME/bin/startGrails直接JAVA_OPTS設置-Xmx512m值(在Windows上,startGrails.bat只設置這個,如果你不提供自己的價值 - 我不知道爲什麼在UNIX腳本表現不同)。看來目前唯一的方法是在startGrails中覆蓋此設置。

請注意,上述僅適用於開發。如果將戰爭部署到應用程序服務器,將使用服務器啓動腳本中的內存設置。

更新2010.07.30:作爲fabian7474寫道,from Grails 1.2.2可以使用GRAILS_OPTS指定VM參數,現在,它是推薦的方式。