软件测试


网站首页 | 软件测试论坛 | 软件测试培训 | 软件测试博客 | 软件测试杂志 | 软件测试沙龙 | 软件测试下载 | 软件测试顾问
业界新闻 | 软件测试人才 | 软件测试技术 | 软件测试工具 | 行业软件测试 | 软件测试管理 | 软件质量专栏 | 软件开发专栏
当前位置:首页>>软件测试工具>>其它工具>>正文
三款Java分析器点评
文章出处:yesky 作者:baggirl编译 发布时间:2005-10-30

本文回顾了三种商用Java分析器并且判断出哪一种分析器更容易满足开发人员的需要

 

导航目录:

   慨述
   分析器原理
   三种产品的快速比较
   测试平台
   Borland Optimizeit Suite
   Quest Software JProbe Suite
   ej-technologies JProfiler
   结束语

  概述

  谁实现Java应用程序的时候不出点问题?嗯,让我们诚实一点吧...代码分析器就是解决这个普遍问题的唯一的自定义工具。在本文中, Laurence Vanhelsuwé将为您回顾三种商用的Java分析器:BorlandOptimizeit Suite Quest Software JProbe Suite、以及ej-technologiesJProfiler

  现在的软件是一个如此笨重的、如此多面性的家伙,以致没有一个开发工具可让程序员随心所欲的完成他们的构想。甚至是运行--这个难以捉摸的尺度,当我们的代码在二档挣扎时恨得它要死;而当我们的代码以一档的速度运行时,我们却爱得它要命--它包含了太多相关方面。

  性能方面公认的问题有:主观的用户感知程序速度及响应速度。如果我们暂时排除用户方面的因素,那么评价运行速度就等于客观实现方面的总和。这些方面有:算法选择、整体内存的使用、对象的动态分配和释放、以及多线程设计与运行行为。帮助你理解你的程序在运行时的维数选择就是代码分析器的繁重工作。

  在本文中,我考虑了三种商用Java分析器并且判断出哪一种分析器更容易满足你我的需要:

  · Borland Optimizeit Suite

  · Quest SoftwareJProbe Suite

  · ej-technologiesJProfiler

分析器原理

  不必惊奇,这三种产品有许多共同点。所有现代分析器都是从同一个起点和约束开始的: Java 虚拟机分析器界面(JVMPI) (参考其他栏的 "The Java Virtual Machine Profiler Interface")Sun微系统的API允许工具开发商接口或者连接到遵循JVMPIJVM上,并且监控运作的方式以及JVM运行任何Java程序时的关键事件--从单独的应用程序到 appletservlet和企业JavaBeans (EJB)组件。

  假定JVMPI强加给所有的分析器工具开发商一个标准的、同等的游戏场,那么区分开发商高低的因素只在于工具的元特征(如,添加重要数值到原始JVMPI数据和功能上的特征,更为重要的是,绘图用户界面(GUI)应该针对这些特征进行开发),这也应该没什么稀奇的了。

  在你看到该产品回顾的余下部分的时候,它的每一个自我形成或者自我突破的GUI都有自己的方法来解决如何开发原始的JVMPI 特征的核心问题,以便可以最大化分析和调试的效率。不幸的是,很多用到大型数据库的应用程序都采用可视化的、直观的真正友好的用户界面,但没有一个分析器能说服我:它们在这方面做得比较成功。

  回顾的这三个分析器几乎都有着同样的分析会话期配置能力。所以在这我只是简短的提一下,并且继续进行比较:

  · JVM 选择

  · 要分析的程序的选择

  · CLASSPATH 和资源路径选择

  要启动评价会话期,所有这三种产品都要求你选择JVM,我们通常JVM上运行应用程序。一旦你选择了JVM,你必须指定你的程序的主类,或者可执行的jar文件,如果你的程序要参数的话,也要指定哪种参数 。最后,为评价会话期设置CLASSPATH通常也要你指明你的源代码层上的工具。图1展示了一个典型的会话期配置对话框。


Figure 1. 

  在分析器内启动一个程序意味着生成、捕捉、和观察大量数据,所以所有的分析器都包含着不同的方法来控制数据的流动,在不同的标准以及每一封装包的基础上进行过滤。同样也可以使用灵活的正规表达式类型模式如java.util.*或者jav*来完成。   

 三种产品的快速比较

  在我探究具体的分析器特征(和非特征)之前,表格1 展示了每个产品关键点的属性矩阵:

  Table 1.属性矩阵

 

Optimizeit Suite

JProbe Suite

JProfiler

版本

5.0

5.0

2.2.1

价格

$1,599

$2,0001

$499

免费评价

Yes

Yes

Yes

在线(安装)帮助

Yes

Yes (JavaHelp)

Yes (JavaHelp)2

有无上下文相关帮助?

Yes

Yes

Yes

安装指南

Yes

Yes

No3

白皮书文件

No

Yes

No

工具模块数

3 (Profiler, Thread Debugger,Code Coverage)

4 (Profiler, Coverage,Memory Debugger,Threadalyzer)

0 (all-in-one)

工具模块是否单独出售?

No

Yes

No

CPU 分析器

Yes (不实时)

Yes (不实时)

Yes (实时)

对象/堆栈 分析器

Yes

Yes

Yes

线程分析器

Yes

Yes

Yes

死锁检测

自动并可见

自动

手动

路径条件检测

No

Yes

No

代码覆盖

Yes

Yes

No

JVM支持

Yes

Yes

Yes

深入到源代码

Yes

Yes

Yes

深入到字节码

No

Yes

Yes

远程评价*

Yes

Yes

Yes

自动评价**

Yes

Yes

Yes

IDE 集成

Yes

Yes

Yes

生成报告

Yes

Yes

Yes

主机平台许可政策

多平台和单一平台许可

单一平台许可

多平台

网址

http://www.borland.com/optimizeit/
index.html

http://www.jprobe.com/

http://www.jprofiler.com/

易于使用度

7/10

4/10

8/10

  注释:

  * 远程评价:在你的开发设备之外的其它设备上评价你的Java程序的执行

  ** 自动评价:实现无人看管的通宵的评价会话期;换句话说,不使用GUI驱动的命令列队

  1 JProbe Suite的价格包含一年的Gold Support (即技术支持)

  2 ej-technologiesJProfiler的在线帮助几乎不包含任何的视图或者对话栏

  3 ej-technologies'缺乏明确的指南将由某些演示会话期作出补偿

  测试平台

  我惊喜地发现:从对宿主操作系统(OS)到对JAVA虚拟机的不同版本, 分析器对不同的平台都有广泛的支持。实际上,大多数分析器支持每一个与商业相关的主机和/JVM实现(这归功于大量的排列,查看更多细节请浏览开发商的产品网站)。一个例外就是Borland Quest Software的分析器都不支持Windows 98。据说是因为Windows 98 在实时精确度的处理方面不是一个"认真的"OS。(Windows 98通过它的公共API显然只能提供50-ms嘀嗒信号的精确度, 毫无疑问,通过这样一个粗糙的计时器的网络许多方法将会以失败告终)所以,在一个配置为900-MHz Athlon CPU256 MB RAM 、运行Windows XP (Service Pack 1)的单独的PC机上,我把这三个分析器都测试了一下。

  为了方便组织这篇回顾,我将测试限制在单独的Java 2平台、标准版(J2SE)应用程序内。 尽管这三种分析器明确表示支持servlet评价或者运行在不同应用服务上的EJB组件,他们的开发商也想借此尽力打进J2EE市场,但我还是没有测试Java 2 Platform 企业版(J2EE)应用程序。

  你必须熟知应用程序的结构和实现,才能从使用分析器中获得新知识,所以我主要依赖于我自己的两个真实的作为评价试验品使用的应用程序(见下面的表格2)。

  Table 2.