性能測(cè)試工具OptimizeIt使用方法_第1頁(yè)
性能測(cè)試工具OptimizeIt使用方法_第2頁(yè)
性能測(cè)試工具OptimizeIt使用方法_第3頁(yè)
性能測(cè)試工具OptimizeIt使用方法_第4頁(yè)
性能測(cè)試工具OptimizeIt使用方法_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、性能測(cè)試工具OptimizeIt使用方法一、性能測(cè)試基本步驟我們先以一個(gè)JAVA Application為例演示怎樣進(jìn)行測(cè)試.1、運(yùn)行OptimizeIt,如果是安裝后第一次運(yùn)行會(huì)自動(dòng)出現(xiàn)Edit Settings對(duì)話(huà)框。如圖1所示圖1 設(shè)置jvm運(yùn)行參數(shù)2、 ProgramType中選擇Application;3、 擊Program main class or Jar file框右邊的Browse按鈕,選擇需要進(jìn)行性能測(cè)試的.class或.jar文檔,現(xiàn)選中OptimizeIt中的例程ZXCOMCRV2.5.03_3GVer_2004-05-09umsums-clntrun.jar4、 選中

2、Virtual Machines控件,確定列表中是否列出了本機(jī)JDK的安裝路徑,如果沒(méi)有,則點(diǎn)擊Add virtual machines.按鈕,下面跟著wizard提示一步步把本機(jī)的JDK加入到列表中,如圖2所示圖2 jdk設(shè)置路徑和方法5、 在class path中加入運(yùn)行所需的jar或路徑,對(duì)wsf為:ZXCOMCRV2.5.03_3GVer_2004-05-09umsums-clntlibZXCOMCRV2.5.03_3GVer_2004-05-09umsums-clntkernelserverdefaultlibZXCOMCRV2.5.03_3GVer_2004-05-09umsums

3、-clntkernellibZXCOMCRV2.5.03_3GVer_2004-05-09umsums-clntkernelbinrun.jarsouce path為空svr類(lèi)似二、內(nèi)存性能測(cè)試啟動(dòng)測(cè)試程序后,OptimizeIt窗口自動(dòng)打開(kāi)內(nèi)存監(jiān)測(cè)器,如圖3所示。內(nèi)存監(jiān)測(cè)器列出了測(cè)試程序中包含的所有類(lèi)以及為每一個(gè)類(lèi)實(shí)時(shí)分配的對(duì)象實(shí)例的數(shù)量。下面介紹一下怎樣使用內(nèi)存監(jiān)測(cè)器來(lái)分析例程中的內(nèi)存使用情況。 圖31 點(diǎn)擊Instance count 列可以根據(jù)對(duì)象分配實(shí)例的數(shù)目對(duì)class進(jìn)行歸類(lèi)2 在窗口下面的Filter框中輸入java.util.*,回車(chē),可以將類(lèi)限制在java.util.*中。

4、3 在內(nèi)存監(jiān)測(cè)器中可以看到很多對(duì)象實(shí)例的數(shù)目在動(dòng)態(tài)的增加和減少。增加是因?yàn)榉峙淞诵碌膶?duì)象實(shí)例,而減少是由于java的垃圾回收。如果只想看到對(duì)象的分配,可以點(diǎn)擊窗口右下方的Disable garbage collector按鈕,這時(shí)就可以只看到所有的分配的對(duì)象實(shí)例數(shù)目。4 在堆列表中選中感興趣的類(lèi),現(xiàn)選中java.awt.color類(lèi),然后點(diǎn)擊按鈕,可以轉(zhuǎn)換到對(duì)象實(shí)例的分配追溯模式,如圖4所示。 圖4我們可以使用內(nèi)存監(jiān)測(cè)器最小化臨時(shí)對(duì)象的分配。臨時(shí)對(duì)象分配很快,但過(guò)多的這種臨時(shí)對(duì)象會(huì)使垃圾回收十分繁忙。對(duì)于大多的java虛擬機(jī)而言,當(dāng)垃圾回收處于繁忙狀態(tài)時(shí),相應(yīng)的會(huì)使java程序凍結(jié)幾百毫妙。如

5、果分配了太多了臨時(shí)對(duì)象,會(huì)使用戶(hù)明顯的感覺(jué)到程序運(yùn)行速度變慢。此外,OptimizeIt的內(nèi)存監(jiān)測(cè)器可以使我們更好的理解為什么有些對(duì)象不被垃圾回收,下面步驟描述怎樣使用內(nèi)存監(jiān)測(cè)器確定某一指定對(duì)象實(shí)例的信息以及是否正在被回收或能否被垃圾回收。1) 點(diǎn)擊按鈕,回到內(nèi)存監(jiān)視器的堆模式;2) 我們選擇顯示與圖像相關(guān)的類(lèi),在filter框中輸入*Image*,回車(chē),結(jié)果如圖5所示; 圖53) 選擇javax.swing.ImageIcon行4) 點(diǎn)擊圖標(biāo),顯示對(duì)象實(shí)例的信息,如圖6所示;圖6窗口的上面顯示了實(shí)例的描述信息,中間部分顯示了哪些對(duì)象引用了選中的實(shí)例,以及回歸引用該對(duì)象實(shí)例的對(duì)象。對(duì)于圖中我們

6、選中的類(lèi),由于ImageIcon對(duì)象被其他對(duì)想引用,所以它不能被垃圾回收。最下面的部分顯示了中間段選中的實(shí)例的分配方法回溯。三、CPU監(jiān)視器的使用CPU監(jiān)視器象是一個(gè)存放在java虛擬機(jī)中的記錄設(shè)備,可以使我們看到對(duì)象消耗的時(shí)間,下面步驟介紹怎樣使用CPU監(jiān)視器獲得被測(cè)程序的CPU利用和時(shí)間花費(fèi)信息。1、 點(diǎn)擊按鈕,如圖7所示; 圖72、 點(diǎn)擊按鈕,開(kāi)始記錄測(cè)試程序的CPU使用情況; 3、讓程序運(yùn)行大約30秒左右,再次點(diǎn)擊剛才的按鈕,CPU監(jiān)測(cè)器會(huì)顯示所記錄的時(shí)間段的監(jiān)測(cè)信息,如圖8所示; 圖84點(diǎn)擊Time profiler output標(biāo)題下的下拉框,下拉框中顯示了在虛擬機(jī)中運(yùn)行的所有線(xiàn)程

7、,我們選中AWT-EventQueue-0線(xiàn)程,如圖9所示;圖95擴(kuò)展EventDispatchThread.pumpOneEvent()方法,一直到出現(xiàn)方法method JComponent.paintWithBuffer().,如圖10所示;圖10其中表示該方法立刻調(diào)用了其他方法;表示該方法真正占用了CPU6選中JComponent.paintWithBuffer().,如果把鼠標(biāo)停留在該方法所在位置,過(guò)一會(huì)兒,可以看到該方法所耗費(fèi)的相對(duì)時(shí)間,如圖11所示;圖11四、虛擬機(jī)信息點(diǎn)擊按鈕,可以看到虛擬機(jī)信息,如圖12所示:圖12右上方的圖表列出了垃圾回收活動(dòng)的信息。垃圾回收活動(dòng)圖表示出垃圾收

8、集所用時(shí)間占總時(shí)間的比例。該信息易于我們理解垃圾回收器有多長(zhǎng)時(shí)間是處于繁忙狀態(tài)。左上方的圖顯示了堆的大小以及當(dāng)前應(yīng)用實(shí)際使用的堆的大小。左下方的圖中紅線(xiàn)表示線(xiàn)程的數(shù)目,而綠線(xiàn)表示實(shí)際使用了CPU的線(xiàn)程數(shù)目。右下方的圖列出了虛擬機(jī)中當(dāng)前加載的類(lèi)的數(shù)目。五、快照的使用我們可以利用OptimizeIt對(duì)當(dāng)前監(jiān)測(cè)情況拍下快照,供以后分析。1、 選擇菜單中的File/Generate snapshot,如圖13所示; 圖132、 在Generate snapshot面板的option中,選中Include reference graph,然后點(diǎn)擊Write snapshot,生成當(dāng)前監(jiān)測(cè)情況的快照。3、

9、 可通過(guò)選擇菜單File/Open snapshot打開(kāi)快照保存文件,通過(guò)上面描述的方式即可瀏覽內(nèi)存和CPU的監(jiān)測(cè)信息。六、如何將OptimizeIt與Jboss集成<OptIt_Dir>是指OptimizeIt的安裝路徑,如C:OptimizeitSuiteOptimizeitSuite41,<Jboss_Dir>是指Jboss的安裝路徑。1) 配置Jboss1 將<OptIt_Dir>Tutorialscript路徑下的jboss_OI.bat 文件拷到<JBoss_Dir>bin目錄下2 用UltraEdit打開(kāi)放在<JBoss_Di

10、r>bin目錄下的jboss_OI.bat文件3 在“set JAVA_HOME=”后面添加本機(jī)虛擬機(jī)的路徑,如: set JAVA_HOME=c:jdk1.3.14 在“set OPTIT_HOME=”后面添加 <OptIt_Dir>的路徑,如set OPTIT_HOME= C:OptimizeitSuiteOptimizeitSuite415 在“set JBOSS_HOME=”后面添加<JBoss_Dir>的路徑6 將文件<OptIt_Dir>filtersJBoss.oif拷到<JBoss_Dir>binoi_filter.oif2

11、)用jboss_OI.bat啟動(dòng)jboss3) 連接OptimizeIt1 從Program菜單選擇Attach,如圖14所示;圖142 如果需要的話(huà),可以自己改變端口號(hào)以及主機(jī)名3 點(diǎn)擊Attach按鈕4 這時(shí),就可以看到Jboss的內(nèi)存及CPU監(jiān)測(cè)情況,方法和前面一樣。七、實(shí)際測(cè)試與數(shù)據(jù)記錄1 用OP啟動(dòng)所要測(cè)試的程序,加入程序所需的類(lèi)和包。2 當(dāng)被測(cè)程序運(yùn)行穩(wěn)定后,在開(kāi)始一個(gè)功能測(cè)試(功能清單中最小的測(cè)量項(xiàng)單位)前,設(shè)置觀(guān)察點(diǎn),表示準(zhǔn)備采集的性能數(shù)據(jù)的開(kāi)始參考點(diǎn)。記錄當(dāng)前的Heap值(或者將Heap數(shù)據(jù)導(dǎo)出),導(dǎo)出實(shí)例數(shù)據(jù)(按工具欄上的Export Data按鈕)。3 然后執(zhí)行要測(cè)試的功

12、能,觀(guān)察實(shí)例的變化情況(由于會(huì)有很多事例生成,影響觀(guān)察,可以在下方的過(guò)濾條件里輸入所關(guān)注的類(lèi)或者包,多個(gè)可用逗號(hào)隔開(kāi))。過(guò)濾器的設(shè)置要合適,不要太大粗,也不要太細(xì),可按功能細(xì)化、側(cè)重的模塊靈活配置。對(duì)于異常的實(shí)例可以觀(guān)看其詳細(xì)資料,定位實(shí)例產(chǎn)生的源頭。同時(shí)還可以切換到內(nèi)存顯示,觀(guān)察Heap的使用情況。4 當(dāng)運(yùn)行穩(wěn)定后,記錄Heap值,導(dǎo)出實(shí)例數(shù)據(jù)。5 關(guān)閉或停止運(yùn)行此功能,穩(wěn)定后,記錄Heap值,導(dǎo)出實(shí)例數(shù)據(jù)。6 當(dāng)發(fā)現(xiàn)可疑類(lèi)(操作該功能前后有很多實(shí)例產(chǎn)生,操作完后很長(zhǎng)時(shí)間不釋放),可按工具欄上的Export Data按鈕導(dǎo)出數(shù)據(jù),在不同的觀(guān)測(cè)界面導(dǎo)出不同格式的數(shù)據(jù),同時(shí)盡可能捕捉該類(lèi)的引用變

13、化情況,通過(guò)抓圖的形式留下供分析的參考界面。7 一般來(lái)說(shuō),一個(gè)功能的內(nèi)存測(cè)試至少要反復(fù)測(cè)三次以上,推薦四次或五次,記錄不同的數(shù)據(jù)(主要是通過(guò)Export Data和抓圖),同時(shí)文件命名時(shí)以比較清晰反映該功能什么操作,并在txt文件里描述自己做了些什么操作,重點(diǎn)的留下數(shù)據(jù)時(shí)都進(jìn)行了什么操作,有些什么條件,包括工具本身的使用,是從什么界面、什么時(shí)候抓或?qū)С瞿膫€(gè)文件,這個(gè)工作可在當(dāng)時(shí)測(cè)試時(shí)簡(jiǎn)單記錄,當(dāng)天測(cè)試結(jié)束后整理成文。8 同時(shí)還可以打開(kāi)Window任務(wù)管理器,觀(guān)察java.exe的內(nèi)存使用情況,可以輔助分析。但是當(dāng)其與Heap值的變化發(fā)生矛盾時(shí)(原因可能是由于window的內(nèi)存回收和java的有所不同),以Heap值的變化為主。9 前一種方式在執(zhí)行完測(cè)試的功能后,不做GC(垃圾回收),下面介紹的測(cè)試方式,在關(guān)閉或停止運(yùn)行此功能后手動(dòng)垃圾回收,等GC的回收率為0%時(shí),在記錄數(shù)據(jù)。(不主動(dòng)垃圾回收,若系統(tǒng)無(wú)內(nèi)存泄露運(yùn)行一段時(shí)間后自己也會(huì)將產(chǎn)生的實(shí)例回收,所以主動(dòng)不主動(dòng)的效果應(yīng)是一樣的)10 由于內(nèi)存測(cè)試收測(cè)試環(huán)境和程序其他部分的影響比較大,先找出可疑的功能點(diǎn),再進(jìn)行細(xì)致的排查。11 記錄格式可采用如下格式

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論