3

我有一个client哪个是Multithreaded代码,哪个是我的一个REST service正在部署到这台机器的代码-

http://px5qa01c-8539.host.com:8080/service/TEService/v1/get/USERID=100/PURCHASED

我可以远程访问上述机器,它是一台 Linux 主机。

现在我打算按我的意思做profiling,我需要看看哪些方法在我的 REST 服务上花费了多少时间。Server SideREST Service

在客户端,我正在运行这样的程序 - 这将影响我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我可以进一步分析的信息?

4

1 回答 1

1

这实际上取决于您使用的工具,它们提供了不同的解决方案。很多时候,他们会监听服务器端 JVM 中的一个端口,该工具附加了该工具。一些工具触摸类以添加额外信息,一些工具可以在不修改的情况下分析应用程序。

我过去使用过 JProfiler,非常好。不过,它是一种商业工具。所以是有代价的。我也使用过 NetBean 的分析器,效果很好。这是一个免费的应用程序,所以那里没有任何费用。JavaMelody 看起来不错,正如 Piotr 所建议的那样,尽管我对此没有任何个人经验。

您只需要拿起一个工具并尝试一下。

于 2013-03-26T01:19:33.150 回答