2

我目前在 Tomcat 上运行的 Grails 应用程序存在一些性能问题。在单页加载期间,我看到 java 进程的 CPU 使用率相当高(大约 20%),我担心这不会很好地扩展。

我看过 Java Melody 和 Grails Profiler 插件。然而,这些工具似乎只告诉我我已经知道的——哪些页面的加载速度比其他页面慢。

我还检查了与 MySQL 的连接数,虽然有很多查询,但它们似乎几乎是立即执行的。此外,MySQL 进程从未出现在使用任何有意义的 CPU 时间的顶部,所以我不认为这是减速的根源。

我需要知道的是我的代码中的哪些方法或函数运行时间最长,以便我可以评估它们以查看它们是否可以重写。到目前为止,我已经尝试手动禁用页面的某些部分来测试加载时间。但是,如果有一个工具可以帮助我指出有问题的代码,那就容易多了。有这样的工具吗?

4

3 回答 3

2

You should not do performance testing in development mode (if you want to test production mode performance).

It's recommended to do performance testing in the appserver container you will be using for production (for example Tomcat).

If you really want to do quick performance testing, you can use the "grails prod run-war" command to do it. In that case you will have to add Grails JVM parameters to BuildConfig.groovy file

grails.tomcat.jvmArgs = ["-server", "-noverify", "-Xms512m", "-Xmx1024m", "-XX:PermSize=96m", "-XX:MaxPermSize=256m", "-Djava.net.preferIPv4Stack=true"]

Start Grails in production mode with this command

grails prod run-war
于 2013-03-20T04:37:49.737 回答
2

我会推荐带有 tc 服务器的 SpringSource InSight

http://www.springsource.org/insight

于 2013-03-15T13:30:00.443 回答
1

我在 tomcat 上的 grails 应用程序也有类似的问题。所以我回到了码头——码头似乎效果更好。

根据新的 gails 发布信息,他们修复了一些 tomcat 问题,因此项目升级也可以解决您的问题。

于 2013-03-15T12:12:34.980 回答