我有一个客户端
,它是多线程
代码,它正在访问我正在部署到这台机器上的REST 服务
之一-
http://px5qa01c-8539.host.com:8080/service/TEService/v1/get/USERID=100/PURCHASED
我可以远程访问上述机器,它是一台 Linux 主机。
现在我计划在 REST 服务
的服务器端
上进行分析
,这意味着我需要查看哪些方法占用了多少资源我的 REST 服务上的时间。
在客户端,我正在运行这样的程序 - 它将访问我在上述机器上部署的 REST 服务
。
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
我可以进一步分析吗?
最佳答案
这实际上取决于您使用的工具,它们提供了不同的解决方案。通常,他们会在服务器端 JVM 中的一个端口上监听,工具附加到该端口上。一些工具接触类以添加额外信息,一些工具可以在不修改的情况下分析应用程序。
我以前用过 JProfiler,非常好。不过,它是一种商业工具。所以这是有代价的。我也使用过 NetBean 的分析器并取得了不错的效果。这是一个免费的应用程序,因此没有任何费用。 JavaMelody 看起来和 Piotr 所建议的一样好,尽管我没有任何个人经验。
您只需要拿起一个工具并试用一下即可。
关于java - 在服务器端分析应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15624302/