我目前在Tomcat上运行Grails应用程序时遇到一些性能问题。在单页加载期间,我看到java进程的CPU使用率相当高(大约20%),我担心这不会很好地扩展。
我看过Java Melody以及Grails Profiler插件。但是,这些工具似乎只能告诉我我已经知道的内容 - 哪些页面的加载速度比其他页面慢。
我还检查了与MySQL的连接数量,虽然有很多查询,但它们似乎几乎立即执行。此外,MySQL进程从未显示为使用任何有意义的CPU时间,因此我不认为这是减速的来源。
我需要知道的是,我的代码中的哪些方法或函数花费的时间最长,因此我可以对它们进行评估以查看它们是否可以重写。到目前为止,我已尝试手动禁用页面的某些部分来测试加载时间。但如果有一个工具可以帮助我找到有问题的代码,那将会容易得多。这样的工具存在吗?
答案 0 :(得分:2)
我建议使用带有tc服务器的SpringSource InSight
答案 1 :(得分:2)
您不应该在开发模式下进行性能测试(如果您想测试生产模式性能)。
建议在将用于生产的appserver容器中执行性能测试(例如Tomcat)。
如果您真的想进行快速性能测试,可以使用“grails prod run-war”命令来执行此操作。在这种情况下,您必须将Grails JVM参数添加到BuildConfig.groovy文件
grails.tomcat.jvmArgs = ["-server", "-noverify", "-Xms512m", "-Xmx1024m", "-XX:PermSize=96m", "-XX:MaxPermSize=256m", "-Djava.net.preferIPv4Stack=true"]
使用此命令以生产模式启动Grails
grails prod run-war
答案 2 :(得分:1)
我在tomcat上的grails应用程序遇到了类似的问题。 所以我回到了码头 - 它似乎在码头上工作得更好。
根据新的gails发布信息,他们修复了一些tomcat问题,因此项目升级也可以解决您的问题。