使用VisualVM对运行在Tomcat上的应用进行性能分析

6
我本地运行了apache tomcat 7并部署了一个以.war文件形式存在的Web应用程序到该服务器。我试图使用visualvm对该应用程序进行性能分析,但目前只能对tomcat本身进行性能分析。在界面上我可以看到有关tomcat的所有信息,没有任何问题。我也可以看到tomcat的各个函数,但这些函数对我来说没有意义。我想要查看的是我自己部署的Web应用程序中函数的执行时间,换句话说就是我自己的代码。但我无法做到这一点。是否有人成功做到过这种性能分析?我需要为我的部署应用程序设置JMX连接或其他东西吗?下面是我能够对tomcat函数进行性能分析的屏幕截图。
1个回答

9
您可以在“分析器”中筛选方法,但您需要的是“采样器”。
以下是您应该执行的操作。
在运行采样器之前,您必须在分析窗口右侧的“设置”复选框上进行检查
它将显示您可以编写哪些包应该进行分析的设置。
例如:
com.myCompany.module.*
图片如下:

我现在试了一下,仍然无法获取我想要的函数结果。问题是,当我连接到本地的Tomcat实例时,我是否应该能够看到我的函数(com.mycompany..)?还是需要直接连接到正在运行的应用程序才能进行分析? - ralzaul
我假设你的服务器在本地主机上。你应该能够在不进行任何额外设置的情况下查看方法执行。尝试使用Java附带的另一个工具-JMC- Java任务控制器,或者如果你想尝试安装JMX,请参考此链接:https://dev59.com/3nM_5IYBdhLWcg3wslfs。 - MarekM
好的,Marek,我会尝试一下。虽然我设置了过滤器,但是我无法看到任何实际的方法执行情况。当我设置过滤器时,它只是空白的,VM 无法将任何函数与我的过滤器匹配。 - ralzaul
是的,带有过滤器的示例运行良好。这对我来说已经足够了,非常感谢。因此,如果您可以在回复中添加附加到Apache进程的内容就足以监视部署在其上的应用程序,我将选择您的回复作为正确的回复,并希望没有人会再花费半天时间调查该问题 :) - ralzaul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接