版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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ì)話框。如圖1所示圖1 設(shè)置jvm運(yùn)行參數(shù)2、 ProgramType中選擇Application;3、 擊Program main class or Jar filerun.jar4、 選中Virtual Machines控件,確定列表中是否列出了本機(jī)JDK的安裝路徑,如果沒(méi)有,則點(diǎn)擊Add virtual machines.按鈕,下面跟著wizard提示一步步把本機(jī)的JDK加入到
2、列表中,如圖2所示圖2 jdk設(shè)置路徑和方法5、 在class path中加入運(yùn)行所需的jar或路徑,對(duì)wsf為:ZXCOMCRVkernelserverdefaultlibkernellibkernelbinrun.jarsouce path為空svr類似二、內(nèi)存性能測(cè)試啟動(dòng)測(cè)試程序后,OptimizeIt窗口自動(dòng)打開(kāi)內(nèi)存監(jiān)測(cè)器,如圖3所示。內(nèi)存監(jiān)測(cè)器列出了測(cè)試程序中包含的所有類以及為每一個(gè)類實(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)行歸類23 在內(nèi)存監(jiān)測(cè)器中可以看
3、到很多對(duì)象實(shí)例的數(shù)目在動(dòng)態(tài)的增加和減少。增加是因?yàn)榉峙淞诵碌膶?duì)象實(shí)例,而減少是由于java的垃圾回收。如果只想看到對(duì)象的分配,可以點(diǎn)擊窗口右下方的Disable garbage collector按鈕,這時(shí)就可以只看到所有的分配的對(duì)象實(shí)例數(shù)目。4 按鈕,可以轉(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é)幾百毫妙。如果分配了太多了臨時(shí)對(duì)象,會(huì)使用戶明顯的感覺(jué)到程序運(yùn)行速度變慢。此外,OptimizeIt的內(nèi)存監(jiān)
4、測(cè)器可以使我們更好的理解為什么有些對(duì)象不被垃圾回收,下面步驟描述怎樣使用內(nèi)存監(jiān)測(cè)器確定某一指定對(duì)象實(shí)例的信息以及是否正在被回收或能否被垃圾回收。1) 點(diǎn)擊按鈕,回到內(nèi)存監(jiān)視器的堆模式;2) 我們選擇顯示與圖像相關(guān)的類,在filter框中輸入*Image*,回車,結(jié)果如圖5所示; 圖53)4) 點(diǎn)擊圖標(biāo),顯示對(duì)象實(shí)例的信息,如圖6所示;圖6窗口的上面顯示了實(shí)例的描述信息,中間部分顯示了哪些對(duì)象引用了選中的實(shí)例,以及回歸引用該對(duì)象實(shí)例的對(duì)象。對(duì)于圖中我們選中的類,由于ImageIcon對(duì)象被其他對(duì)想引用,所以它不能被垃圾回收。最下面的部分顯示了中間段選中的實(shí)例的分配方法回溯。三、CPU監(jiān)視器的使用
5、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)行的所有線程,我們選中AWT-EventQueue-0線程,如圖9所示;圖95擴(kuò)展EventDispatchThread.pumpOneEvent()方法,一
6、直到出現(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)圖表示出垃圾收集所用時(shí)間占總時(shí)間的比例。該信息易于我們理解垃圾回收器有多長(zhǎng)時(shí)間是處于繁忙狀態(tài)。左上方的圖顯示了堆的大小以及當(dāng)前應(yīng)用實(shí)際使用的堆的大小。左下方的圖
7、中紅線表示線程的數(shù)目,而綠線表示實(shí)際使用了CPU的線程數(shù)目。右下方的圖列出了虛擬機(jī)中當(dāng)前加載的類的數(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、 可通過(guò)選擇菜單File/Open snapshot打開(kāi)快照保存文件,通過(guò)上面描述的方式即可瀏覽內(nèi)存和CPU的監(jiān)測(cè)信息。六、如何將Optimize
8、It與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_Dir>bin目錄下的jboss_OI.bat文件3 在“set JAVA_HOME=”后面添加本機(jī)虛擬機(jī)的路徑,如: set JAVA_H
9、OME = 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)用jboss_OI.bat啟動(dòng)jboss3) 連接OptimizeIt1 從Program菜單選擇Attach,如圖14所示; 圖142
10、 如果需要的話,可以自己改變端口號(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è)試的程序,加入程序所需的類和包。2 當(dāng)被測(cè)程序運(yùn)行穩(wěn)定后,在開(kāi)始一個(gè)功能測(cè)試(功能清單中最小的測(cè)量項(xiàng)單位)前,設(shè)置觀察點(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è)試的功能,觀察實(shí)例的變化情況(由于會(huì)有很多事例生成,影響觀察,可以在下方的過(guò)濾條件里輸入所關(guān)注的類或者包,多個(gè)可用逗號(hào)隔開(kāi))。過(guò)濾器的設(shè)置要合
11、適,不要太大粗,也不要太細(xì),可按功能細(xì)化、側(cè)重的模塊靈活配置。對(duì)于異常的實(shí)例可以觀看其詳細(xì)資料,定位實(shí)例產(chǎn)生的源頭。同時(shí)還可以切換到內(nèi)存顯示,觀察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)可疑類(操作該功能前后有很多實(shí)例產(chǎn)生,操作完后很長(zhǎng)時(shí)間不釋放),可按工具欄上的Export Data按鈕導(dǎo)出數(shù)據(jù),在不同的觀測(cè)界面導(dǎo)出不同格式的數(shù)據(jù),同時(shí)盡可能捕捉該類的引用變化情況,通過(guò)抓圖的形式留下供分析的參考界面。7 一般來(lái)說(shuō),一個(gè)功能的內(nèi)存測(cè)試至少要反復(fù)測(cè)三次以上,推薦四次或五次,記錄不同的數(shù)據(jù)(主要是
12、通過(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ù)管理器,觀察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 記錄格式可采用如下格式,其中Diff為實(shí)例數(shù)的變化量,F(xiàn)il
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年農(nóng)行個(gè)人貸款合同模板2篇
- 二零二五年度體育場(chǎng)館租賃與賽事場(chǎng)地標(biāo)識(shí)系統(tǒng)建設(shè)合同
- 2025年度綠色生態(tài)農(nóng)業(yè)園建設(shè)與管理合同4篇
- 二零二五年度個(gè)性化廚具安裝與整體廚房設(shè)計(jì)合同3篇
- 二零二五年度溫泉度假村大理石地暖鋪設(shè)合同4篇
- 二零二五年度存量房買賣合同合同糾紛處理流程與期限(2024版)4篇
- 2025年度農(nóng)業(yè)耕地租賃合同環(huán)境保護(hù)與修復(fù)規(guī)范4篇
- 2025年度臨時(shí)用工勞動(dòng)關(guān)系解除合同3篇
- 2025年度個(gè)人旅游服務(wù)合同標(biāo)準(zhǔn)范本3篇
- 二零二五版木材廠土地租賃合同與林業(yè)科技創(chuàng)新合作4篇
- 2025年度部隊(duì)食堂食材采購(gòu)與質(zhì)量追溯服務(wù)合同3篇
- 消防產(chǎn)品目錄(2025年修訂本)
- 地方性分異規(guī)律下的植被演替課件高三地理二輪專題復(fù)習(xí)
- 繪本 課件教學(xué)課件
- 光伏項(xiàng)目風(fēng)險(xiǎn)控制與安全方案
- 9.2提高防護(hù)能力教學(xué)設(shè)計(jì) 2024-2025學(xué)年統(tǒng)編版道德與法治七年級(jí)上冊(cè)
- 催收培訓(xùn)制度
- 牧場(chǎng)物語(yǔ)-礦石鎮(zhèn)的伙伴們-完全攻略
- ISO 22003-1:2022《食品安全-第 1 部分:食品安全管理體系 審核與認(rèn)證機(jī)構(gòu)要求》中文版(機(jī)翻)
- 農(nóng)業(yè)生產(chǎn)質(zhì)量安全風(fēng)險(xiǎn)評(píng)估與監(jiān)控方案
- 人教版六年級(jí)上冊(cè)解方程練習(xí)300道及答案
評(píng)論
0/150
提交評(píng)論