总体介绍及软件获取
Borland Optimizeit Suite 是Borland 提供的一个Java 代码优化工具包,包括:
1、Profiler:内存、Java 虚拟机、CPU 使用情况跟踪
2、Thread Debugger:Thread 跟踪工具
3、Code Coverage:代码运行覆盖跟踪工具,可以提供代码的覆盖率
Optimizeit Suite 可以从http://www.borland.com/Optimizeit 得到一个14 天的试用版本。
Optimizeit 可以与Jbuilder、VisualAge、VisaulCafe 集成使用。
安装及与Jbuilder 集成使用
Optimizeit 的安装只需要按照提示确省安装就可以了,安装完毕后运行
就可以在系统右下角的图标区看到,双击就可以进入如下界面
随便进入任何一个程序,按下图
选择要集成的IDE 环境就可以了,这里我用的是JBuilder7。然后我们进入JBuilder7
的菜单Project->Project Properties->Run,点“Edit”我们将看到如下窗口
可以在这里修改Profiler 和Code Coverage 的Filter 文件存放的路径。JBuider 确省
是和Project 放在一起的,该配置文件可以使用命令EditFilter 来修改,注意EditFilter
命令需要从命令行启动,菜单上是没有。
如果要使用Optimizeit 运行,从菜单Run->Optimize Project 或者Run->Optimize
xxxx.java using Runtime Configure 就可以了。
注意: Optimizeit 也可以和一些应用服务器集成,具体看Application Server
integration。
Code Coverage
从菜单Run->Optimize Project 或者Run->Optimize xxxx.java using Runtime Configure 运
行后就会直接进入Code Coverage 界面。在Jbuilder 里面Code Coverage 有三个选项
“Pause after launch”被选中后程序不会立即运行,“Snapshot on exit”将在程序退出的时候自动在指定的目录下生成一个快照文件,“VM connnot exit ”选中将屏蔽System.exit方法,如果是命令行程序,必须选择。
使用Code Coverage 要注意,菜单File 下的New、Open 操作的是Code Coverage 的配置
文件而是运行结果。要保存结果应该使用“Generate snapshot”。
其次在Code Coverage 确省会列出一大堆我们不敢兴趣的类,可以通过Filters 来屏蔽
Filters 输入的主要格式有如下方式:coverage.* 或者!coverage.* ,前者只显示packagecoverage 及子package 的类,后者显示除前者的所有类。
双击类可以看到类内方法及代码的具体覆盖情况,黄色的代码表示被执行了。
Profiler
Profiler 主要用于观察当前的内存及Java 虚拟机、CPU 使用情况。
上图从左到右依次代表查看Java 虚拟机、CPU、内存情况。查看内存情况可以按照一
行几中方式查看:
1、Heap:缺省模式
2、Allocation Backtrace:显示Heap 中某一Class 的被调用情况
3、Instance Display:显示某一实例的引用(Reference)情况
4、Reference from roots:以类继承关系显示各个类占用内存的情况
后两种模式下可以通过双击Allocated at 列表来查看源代码,当然源代码路径必须事先
设定。
Thread Debugger
Thread Debugger 用于线程的调试,可以观察线程的运行、死锁及线程调用方法。
上图从坐到右的功能为:
1、查看线程情况
2、查看Monitor 信息:主要是看线程的Block。
3、启动Moniter 分析
查看线程情况可以按照
1、Acitvate 模式:查看线程的活动情况
2、Contention 模式:显示Contention,所谓Contention 指两个或两个以上的Thread 试
图同时进入同一个Monitor
3、Waiting 和I/O Waiting 模式
4、Moniter Enter 模式:显示线程进入Moniter 及在Moniter 运行的情况。