(mywes)


他们彼此深信,是瞬间迸发的热情让他们相遇。这样的确定是美丽的,但变幻无常更为美丽

留言簿

公告

最新日志

最新评论

搜索

登陆

友情连接

统计

2006/1/23 13:08:00
Quest Software的 JProbe Suite

Quest Software的 JProbe Suite

  Quest Software的JProbe Suite 在功能和价格上与Borland的Optimizeit Suite差不多。它也提供独立的工具模块来解决评价问题,模块有四: JProbe Profiler、JProbe Coverage、JProbe Memory Debugger、和JProbe Threadalyzer。

  与其他两个分析其发行商不同,Quest Software单独发售个别模块组件;如JProbe Profiler一个就要$849 (包括一年的技术支持)。

  JProbe Suite的关键特征

  JProbe的评价方法集中在JVM实现数据瞬象的概念上。你可以为了以后的重新装载和后续的分析保存瞬象,并且比较两种瞬象以找出差别。图7 显示了一个典型的JProbe Profiler窗口,它包含两个用于分析的瞬象。 

 
Figure 7. 一个典型的高级JProbe GUI显示用于(静态)分析的评价瞬象。

  敲击一下,中心瞬象方法表示多数JProbe分析已经离线,不再是实时的了。这种方法对于堆栈分析很有意义,但是对于CPU实现评价就过于严格了。

  对于CPU评价的所有重要的任务来说,JProbe要么提供表格式视图(如图8),要么提供图表式视图(如图9)。它没有提供让你深入到调用堆栈分支的直觉的Swing JTree类型的视图。


Figure 8. 一个典型的JProbe Profiler表格显示收集的实时方法。


Figure 9. 用图表显示的JProbe 实时方法。

  JProbe的第二个模块,Memory Debugger允许你使用多种方式对堆栈瞬象进行操作。 它也包含一个简单而有效的使用实例分析的功能,它允许你在启动使用实例之前重新设置收集的数据。Memory Debugger也允许你定义任何实例数的计算限度(Quest Software有点模糊地称之为"断言"),在使用实例结束的时候,如果类生成的对象超过了你的期望值这个计算限度就会提醒你。图10显示了JProbe的堆栈概要图。 

Figure 10. JProbe的堆栈概要图是Memory Debugger模块的主视图。

  Memory Debugger的实例细节图(图11)让你可以分析出哪个对象涉及到了焦点对象以及焦点对象涉及到了哪个对象。

Figure 11.

  引用图表视图(图12)允许你以一种辉煌但经常无法抵抗的图表细节来分析流入和流出的引用。 
引用图表视图(图12)允许你以一种辉煌但经常无法抵抗的图表细节来分析流入和流出的引用。 

 
Figure 12.

  如果缠在一起的意大利面条对你来说听起来就好比听二十世纪七十年代的减速火箭的话, Memory Leak Doctor显示的对象引用链有产生存储遗漏的潜在可能(图13)。Leak Doctor 可让你在一个堆栈瞬象上实现"如果我删除一个引用会怎样"的试验,并且看看这种操作能否解决你的存储遗漏问题。

Figure 13.

  Memory Debugger的又一个有用的性能是Garbage Monitor;它可以追踪用于暂时存在的对象如幕后的对象StringBuffer之类的分配热点。这种对象可使用语法级的字符串进行串联(与API级别的串联相反)。

  JProbe的 Threadalyzer是JProbe Suite的线程分析模块,并有着足以自豪的、可以自动检测问题的许多有用的性能。这些问题有:

  · 死锁(现有的和潜在的)

  · 线程迟延

  · 数据竞争

  但是,解决这些以外的其他方面的性能,GUI就远远没有那么直观了。

  JProbe Suite的活页(纸)文件的编写和设计(在布局、屏幕快照的使用、和图标方面)应该说做得相当好。而且更进一步的是,它还告诉读者一些有价值的技术性能分析的方法和技巧,并且就如何将分析集成到你的软件开发方法中去提出一些基本的建议。

  JProbe Suite的缺陷

  尽管JProbe在工具市场占的份额高,我对于它的粗糙和不成熟仍然感到失望。它看起来感觉就像一个存在了多年但是却没有从偶尔的信手重新设计这种增长需求中获益的软件。因此JProbe Suite 5.0则在经典的"特征化"的重压下呻吟。我发现JProbe只有极少数方面才真正直观或者功能相当强大。学会使用JProbe是一件真正困难的任务。Memory Debugger中从左边、右边和中间弹出的GUI很不直观,尤其让人感到迷惑,而且我在许多的地方彻底迷惑了。

  其它的JProbe 问题有(无固定顺序):
  
   · 难于解释和交互的图形显示(图形和方法定时)

   · 由混乱的十六进制数识别对象,而不是由它们的更为启发性的toString()表示法识别。

   · 工具栏图标对于我的二十英寸、1280 x 1024 像素的屏幕来说实在是太小了。

   · 方法适时表格只显示文字数字的数据信息,而不是文本、图表和颜色的综合信息。

   · 在下列三种模块的表格中使用了三种不同的外观:Code Coverage、 Garbage Monitor和 Profiler。

   · 好像标准的Swing组件没有用在表格中,导致了没有一个标准的外观。

   · 太多不同的窗口/视图很少表现出整体的连贯性或者主要构思。

   · 在线帮助有时递交的是被破坏的文本(可能在JProbe使用的JavaHelp中出现故障)。

   · 数不清的窗口通过一大串按钮点击来连接,但是却没有返回/前进机制。

   · 报告打印可以删掉:PDF产生之后发送到Acrobat Reader(安装一下就可以了)。我的测试设备上已经有了一个Acrobat 4.0 ,但是Acrobat 与报告打印模式不兼容:"文件打开出现错误。文件不存在"。

   · 在Code Coverage模式中,Generate Report对话框打开时竟然比我的1024行的桌面还要高(OK 和Cancel 按钮完全不在屏幕上了!)

 

发表评论:

    昵称:
    密码:
    主页:
    标题: