| | | | | | | [文章信息] | | | 作者: | baggirl编译 | | 时间: | 2003-10-07 | | 出处: | yesky | | 责任编辑: | 方舟 | |
| [文章导读] | | | 本文回顾了三种商用Java分析器并且判断出哪一种分析器更容易满足开发人员的需要 | |
| |
|
| | | |
|
|
|
|
|
ej-technologies的 JProfiler
如果你以前没听说过ej-technologies公司,那也没什么好惊奇:作为一个2001年才成立的德国公司,ej-technologies公司在Java工具市场确实是后起之辈。它在2002年2月发行JProfiler 1.0版本,并在2003年4月发行它的2.2.1版本(本文提到过)。(它同时也生产开放式源代码Java类库类文件API 和类阅读器。JProfiler使用这类阅读器 )ej-technologies公司的诞生和旗舰产品的问世代表着JProfiler的设计已经从巨大数量的后见之明中获益:它的GUI比Quest Software公司的JProbe Suite要容易操作的多。
JProfiler的核心性能
JProfiler 与前面两个分析器差别甚大,因为它采用了可以检测不同分析尺度的统一工具: 他只由一个工具组成。这个工具只是使用了四种不同的视图设置,可让你从不同角度分析你的程序,而且不必重启会话期或者切换到不同的程序。比起那些工具片断组合来说,这个方法的简单性和对称性要讨人喜欢,要有意义的多。而且在那些工具中,用户接口相互不连贯,功能判断也比较武断,这些缺点把工具的优势全破坏掉了。
四种JProfiler 视图设置是:
1. 存储视图(堆栈和对象图表分析)
2. CPU 视图(方法适时性)
3. 线程视图
4. VM 遥测视图
这些视图可以细分到形成产品中心的子视图。图14显示的Profiler有自己的关键Views下拉菜单。
 Figure 14.
尽管Views菜单清楚地反映出产品的整体结构,视图之间的快速切换只需要在左边的垂直工具栏中点击就可以了,然后在窗口按钮的跳格键中随意地选择一个指定的类型。
方法计时可用作方法调用树,它可以显示时间消耗和绝对时间消耗的百分比。图15显示的正是这种树。
 Figure 15. JProfiler的调用树视图(三个CPU视图中的一个)。
JProfiler允许你左击与调用树的每一行关联的上下文菜单 ,从而深入到消耗周期方法的源代码或者字节码。单个线程或者线程组可过滤方法评价的信息。JProfiler 也有一个子视图,它可列出由JVM识别的代码热点,这些代码已经编译成本地代码。
几种存储视图支持堆栈分析。图16显示的监控器子视图与Borland 的类似。
 Figure 16. JProfiler的类监控器视图(四个存储视图中的一个)。
将高端技术指标集成到一个易于操作的GUI上,这是一件了不起的事情,但JProfiler的Heap Walker 模块(图17)却是它的唯一败笔。它的六个子视图的子视图更象一个程序内部的程序,它应该集中解决它的有效使用问题,而不是扩展产品的其它性能。
 Figure 17. JProfiler's Heap Walker 主页图。
线程视图设置的五个子视图集中处理:线程的过去状态和当前状态(运行、等待、和阻塞)、监控器的过去使用和当前使用、以及监控器的统计表。这些视图比直接观察原始数据要好一点。但是这些视图中没有一个可以自动的智能的帮助你识别竞争条件、死锁、或者线程的其他噩梦。图18显示的是一个典型的线程视图。
 Figure 18.
VM 遥测视图设置的五个不同的实时滚动曲线图显示:堆栈空间的使用情况和空闲情况、对象数(有助于分出排列和非排列两类)、已经装载的类数、垃圾收集器的活动、和线程数。图19 显示了这种视图设置。
 Figure 19.
JProfiler的缺陷
JProfiler的 CPU 分析器中缺少的一个简单特征就是Reset或者Clear Data命令。 例如,当你分析一个Swing应用时,应用程序装载和初始化过程中收集的数据,与激活应用程序某个特征时收集的数据,这两种性能数据有着本质的差别。但是,一旦装载了测试应用程序,我就会清除纪录,以便集中处理具体的使用案例。目前, JProfiler不支持这种基本分析模式。
JProfiler的在线帮助过于简单,它缺乏实例、详细的指南以及GUI屏幕快照。尽管JProfiler 是这三个分析器中最直观地分析器,但是缺乏足够的在线帮助使得它的Heap Walker 模块更难理解。
|
|
|
|
|
|
|
|