适用于Java应用程序的性能分析器

Nit*_*arg 25 java performance profiling

我需要优化Java应用程序.它会进行第三方通话.我需要一些好的工具来准确测量各个API调用所花费的时间.为了解复杂性 - 应用程序采用包含100万行的数据源文件,完成处理大约需要一个小时.作为处理的一部分,它会进行一些第三方呼叫(包括一些网络呼叫).我需要确定哪些调用比其他调用花费更多时间,并在此基础上找到优化应用程序的方法.

任何建议,将不胜感激.

aio*_*obe 28

我可以推荐JVisualVM.它是与Oracle/Sun JDK捆绑在一起的出色监控/分析工具.只需启动它,连接到您的应用程序并启动CPU分析.你应该在时间花费的地方获得很棒的直方图.

VisualVM入门有一个很棒的屏幕演示,向您展示如何使用它.

截屏:

VisualVM截图


另一个更基本的选择是使用-Xprof命令行选项:

-Xprof

配置正在运行的程序,并将分析数据发送到标准输出.此选项作为在程序开发中有用的实用程序提供,不适用于生产系统.

  • 啊,不知道.你有什么好的URL解释如何让它与eclipse一起玩吗? (2认同)

ewe*_*nli 7

我一直在使用YourKit几次,对它非常满意.然而,我从来没有描述过长时间运行的操作.

每行的处理是否相同?在这种情况下,输入文件的大小并不重要.您可以分析一个子集以确定哪些调用很昂贵.


Iva*_*nic 5

只是想提一下inspectIT工具.它最近成为完全开源的(https://github.com/inspectIT/inspectIT).它提供了完整详细的调用图和上下文信息,有许多用于数据库调用,http监控,异常等的开箱即用传感器.

接缝非常适合您的用例..