我有一个client
,这是Multithreaded
代码,正在点击我的REST service
之一正在部署到这台机器上 -
http://px5qa01c-8539.host.com:8080/service/TEService/v1/get/USERID=100/PURCHASED
我可以远程访问上述机器,它是Linux主机。
现在我打算在我的profiling
上的Server Side
上REST Service
,这意味着我需要查看哪些方法花了我的REST服务上多少时间。
在客户端,我正在运行这样的程序 - 这将触及我在上述机器上部署的REST Service
。
java -Xrunhprof:cpu=samples,thread=y,depth=12,cutoff=0 -jar ServiceLnP.jar service_config.properties NUMBER_OF_THREADS:20 TOTAL_RUNNING_TIME:60
因此,在客户端,它将生成java.hprof.txt
文件,我可以使用HP Jmeter打开并分析它。
问题陈述: -
但是在服务器端我该怎么办?分析已部署在其他计算机上的应用程序的最佳方法是什么。
仅供参考 - 部署它的容器是Geronimo。那么有什么办法,我也可以在服务器上启用hprof
,一旦我完成REST服务,它会生成java.hprof.txt
我可以进一步分析吗?
答案 0 :(得分:1)
它真正归结为您正在使用的工具,它们提供了不同的解决方案。通常,他们会监听服务器端JVM中的端口,该工具附加工具。有些工具会触摸类来添加额外的信息,有些工具可以无需修改即可对应用程序进行概要分析。
我过去曾使用过JProfiler,这非常好。不过,它是一种商业工具。所以需要付出代价。我已经使用了NetBean的分析器以及良好的结果。这是一个免费的应用程序,所以没有成本。尽管我没有任何个人经验,但是JavaMelody看起来也很好,但也没有任何个人经验。
你只需要拿一个工具然后试一试。