總體介紹及軟件獲取
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 運行的情況。
原文轉自:http://www.anti-gravitydesign.com