【发布时间】:2013-06-05 09:05:26
【问题描述】:
我们公司目前正在寻找 Java 分析器。我们收到了来自 Compuware(dynaTrace 产品)的报价,它能够为 CPU 分析提供这种输出(示例):
(好吧,我不能发图片,剩下的问题应该没有这张图就清楚了)
dynaTrace 为您提供的是一个特定方法的所有调用的列表,其中包含关于每个调用花费了多少 wall 时间、其中多少是 CPU 时间以及等待 IO 的确切信息。这个(在我看来非常简单)信息非常重要,也是我们绝对需要的。
现在,问题是...... 还有什么其他分析器实际上能够提供这个信息之王?
我尝试了 VisualVM(JDK 附带)、YourKit 和 JProfiler。我没有找到任何方法来产生这个输出。
通过采样测量总的挂墙时间和实际 CPU 时间应该非常容易,但 JProfiler 和 YourKit 似乎只能测量挂墙时间或 CPU 时间,而不能同时测量两者。 VisualVM 在采样时同时显示墙和 CPU 时间,这将使其优于这两种付费产品中的任何一种。
分离某个方法的调用并分别显示每个调用的结果(而不是一个方法的聚合信息,而不考虑它被调用的位置和参数)似乎更高级的功能,这些都不是产品似乎能够做到这一点。
这两个功能对于我们在分析器中是必不可少的。如果有人知道提供他们的产品,请告诉我,我将非常感激。
当然,提到的一些分析器很可能具有这些功能,但我在有限的时间内没有找到如何做到这一点,我不得不研究它们。
【问题讨论】:
-
添加图片链接,方便其他人编辑
-
图片不是必需的,但这里是:tinypic.com/r/5mkfn8/5