14

Grails2.0を使用しています。以前はGrails1.3.7で開発していましたが、Grails 2.0でアプリケーションを実行すると、パフォーマンスが非常に遅くなります。ページが表示されるまでに30秒以上かかる場合があり、非常に恥ずかしくて非生産的です。

グーグルで調べたところ、2.0のGSPは1.3.7よりも10倍遅い場合がありました。Greameは、dev modでGSPを処理する新しい方法があると説明しましたが、grails prod run-appを実行すると、ほぼ同じ問題が発生します。

開発プロセスをスピードアップするにはどうすればよいですか?私はあまりにも多くの時間を失っています。

PS:私のGRAILS_OPTSは "-server -Xmx600M -Xms600M -XX:MaxPermSize = 250m -Dfile.encoding = UTF-8 -Dserver.port = 9090" </ p>

4

3 に答える 3

7

約20分前にメーリングリストに小さなお知らせを投稿しました:http: //grails.1312388.n4.nabble.com/GSP-Compilation-tt4632864.html#a4635595

この問題は修正されました:http: //jira.grails.org/browse/GRAILS-9423

最新の2.1.xスナップショットビルドのパフォーマンスをテストしてください。

これらを試してください

export GRAILS_OPTS="-server -noverify -XX:PermSize=256m
-XX:MaxPermSize=256m -Xmx600M -Xms600m -XX:+UseParallelGC -Djava.net.preferIPv4Stack=true 
-Dsun.reflect.inflationThreshold=100000"

私にとっての秘訣は、XmxとXmsを同じ値に設定し、PermSizeとMaxPermSizeを同じ値に設定することでした。sun.reflect.inflationThresholdはpermgenに役立ちます。(説明については、Grails jiraのhttp://jira.grails.org/browse/GRAILS-7878?focusedCommentId=66447&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-66447 )

ところで。この問題は10分前に提出しました:http: //jira.grails.org/browse/GRAILS-9444 興味深い場合は、この問題に投票してください。

于 2012-09-27T16:06:29.463 に答える
3

Grails 2.xは、リロードが改善されたため、開発モードでは1.3.xよりも低速です。JRebelと同様のSpring-Loadedリロードエージェントを使用します。

開発用ラップトップに十分なメモリ(> 4GB)、SSD、および高速i7CPUがあることを確認してください。

16GBのメモリと高速のSSDを備えた最近のラップトップを入手すれば、速度の低下について考える必要はもうありません。i7シリーズのCPUもお勧めします。それは現在約1200ドルしかかかりません。

于 2012-09-28T21:58:19.043 に答える
2

Spring-Loadedリロードエージェントの最新の修正を使用していることを確認するには、Grails2.0.xではなくGrails2.1.xを使用します。Grails 2.1.1の場合、Spring-Loadedリロードエージェントをスナップショットバージョンにアップグレードすることをお勧めします。

最新のスナップショットは、 https://repo.springsource.org/snapshot/com/springsource/springloaded/springloaded-core/から入手でき ます。

現在はhttps://repo.springsource.org/snapshot/com/springsource/springloaded/springloaded-core/1.1.1.BUILD-SNAPSHOT/springloaded-core-1.1.1.BUILD-20120821.173635-2.jarです。

$ GRAILS_HOME / lib / com.springsource.springloaded / springloaded-core / jars / springloaded-core-1.0.6.jarをダウンロードしたスナップショットに置き換えます(スナップショットの名前を同じファイル名springloaded-core-1.0.6.jarに変更します) 。

この回答は、springloaded-coreバージョン1.1.1がリリースされるとすぐに古くなります。

于 2012-09-28T21:50:10.563 に答える