2012-07-25 77 views
5

我的Play有一些严重的问题!应用性能。我已经尝试更改服务器和数据库,但缓慢持续。通过VisualVM剖析Play框架应用程序(2.0.2)

使用Firebug来衡量我的http请求我发现他们需要大约20秒才开始回复。

所以我最后的希望是使用VisualVM来剖析我的应用程序并找到它的瓶颈。但我不知道传递诸如“-Dcom.sun.management.jmxremote”之类的参数而不干扰全局JAVA_OPTS变量的正确方式。

再次感谢!

回答

5

它看起来像Metrics自动处理。

以下添加到您的Build.scala应用的依赖关系:

"com.yammer.metrics" % "metrics-core" % "2.1.2" 

并开始插装代码。然后用“play run”启动应用程序--VisualVM应该显示你的JVM进程,并且你可以直接连接它(假设你有VisualVM-MBeans插件)。检查您是否有at least 1.3.4。这是我看到的时候,我开始了:

VisualVM

的xsbt.boot.Boot过程中播放。

更一般地说,这个article确实有助于调试基于Akka的框架,如Play。

+2

github链接已经死了! – ajay 2014-09-09 06:37:53

+0

万岁github链接! – fish 2017-10-30 12:32:32

4

万一有人需要来分析一个播放2.3.x版本的应用程序:

  1. 把你的JAVA_OPTS设置在〜/ .activator/activatorconfig.txt(CF https://typesafe.com/activator/docs):

     
    -Dcom.sun.management.jmxremote.port=1234 
    -Dcom.sun.management.jmxremote.rmi.port=1234 
    -Dcom.sun.management.jmxremote.authenticate=false 
    -Dcom.sun.management.jmxremote.ssl=false 
    -Djava.rmi.server.hostname=127.0.0.1 
    
  2. 在VisualVM中,添加本地JMX连接到localhost:1234