我们公司正在寻找Java分析器。我们从Compuware(dynaTrace产品)那里得到了一个能够给CPU分析提供这种输出的例子(例子):高级Java分析
(好吧,我不能发布图片,其余的问题应该清楚没有这张图片)
dynaTrace给你的是一个特定方法的所有调用清单,其中包含每个调用花费多少时间,CPU时间多少以及等待IO的时间。这(在我看来非常简单)信息非常重要,是我们绝对需要的信息。
现在,问题是... 什么其他分析器实际上能够给这个信息王?
我试过VisualVM(JDK自带),YourKit和JProfiler。我没有找到任何方法来产生任何这些输出。
测量的总挂钟时间与实际CPU时间应与采样非常容易,但似乎并的JProfiler YourKit只能测量或者挂钟时间或CPU时间,不可能兼顾。 VisualVM在采样时显示墙壁和CPU时间,这将使它比这两种付费产品中的任何一种都更好。
将某个方法的调用分开并分别显示每个调用的结果(而不是不考虑调用方式和参数的方法的汇总信息)似乎是更高级的功能,并且这些产品都不是似乎能够做到这一点。
这两个特性对于我们在Profiler中是非常重要的。如果有人知道提供它们的产品,请告诉我,我会非常感激。
当然,很有可能某些提到的配置文件具有这些功能,但我没有找到在有限的时间内如何做到这一点,我不得不研究它们。
添加链接到图像,以便其他人可以在 –
编辑的图像是不是真的有必要,但这里有云:http://tinypic.com/r/5mkfn8/5 – Sethiel