加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

寻找端到端Java CPU Profilers的建议[已关闭]

发布时间:2020-12-14 05:55:26 所属栏目:Java 来源:网络整理
导读:Java存在哪些好的端到端CPU分析器? 我正在寻找的快速列表: 脱机分析 – 程序执行期间无需用户交互或GUI.将配置文件数据转储到文件然后需要使用GUI进行查看很好,我只是不想在工作运行时保管它 端到端记录 – 在进入J2SE应用程序的主要调用后,Profiler应该能
Java存在哪些好的端到端CPU分析器?

我正在寻找的快速列表:

>脱机分析 – 程序执行期间无需用户交互或GUI.将配置文件数据转储到文件然后需要使用GUI进行查看很好,我只是不想在工作运行时保管它
>端到端记录 – 在进入J2SE应用程序的主要调用后,Profiler应该能够立即开始记录.它应该在JVM退出之前立即停止录制.
>调用图生成 – 在分析之后,将数据转换为可视调用图是很好的.

谷歌有一个很好的C/C++ – http://google-perftools.googlecode.com/svn/trunk/doc/cpuprofile.html剖析器

如果Java的等价物存在,它正是我正在寻找的.

我没有在我的潜在剖析器列表中包含HProf,因为与使用精确CPU调用分析时看到的其他商业剖析器相比,它表现不佳(通常通过字节代码注入完成,这很慢,但HProf至少出现比其他分析器慢一个数量级,当单个采样配置文件运行需要1-2个小时时,等同于一天的同一次运行是不可接受的)

解决方法

到目前为止,我最喜欢的是 JProfiler.我直到现在才意识到这一点(因为我总是使用交互式分析GUI),但它实际上支持离线分析,就像你描述的那样.

其他一些很酷的功能:

>它会描述所有SQL语句,因此您可以看到哪些数据库查询正在减慢您的速度.
>它跟踪哪些方法(在哪个类和包中)分配最多的内存,哪些类型的对象&数组,以及这些对象的寿命.因此,如果你正在泄漏内存,那么很容易找到哪些类型的类实例比它们的实用性更长,并找到最初分配这些对象的方法(以及谁持有保持对象存活的引用).
>您可以跟踪VM增长情况,监控GC完整集合的频率,以及确定在每个收集周期中释放了多少对象(哪种类型).
>当然,您可以获得所有方法调用的分层细分,包括整个调用堆栈的调用次数和平均执行时间(独占或包含).您还可以从“最坏瓶颈”函数的角度查看此层次结构,按执行时间或内存分配排序.

对我来说,JProfiler是我开发过程中最重要的工具之一(仅次于Eclipse).

另外:有一个free 10-day trial.下载并查看.而且,顺便说一下,我不是公司或任何东西的附属品.在过去的五六年里,我一直是一个快乐的客户.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读