您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源性能測(cè)試工具 > TPTP接口
使用 TPTP 對(duì) Eclipse 插件進(jìn)行性能剖析和調(diào)優(yōu)
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/8/5 11:22:10 ] 推薦標(biāo)簽:

分析性能瓶頸

可以使用 Execution Statistics 視圖來分析程序中各個(gè)方法的運(yùn)行時(shí)間。打開該視圖的方式是,數(shù)據(jù)收集進(jìn)程上點(diǎn)右鍵,選擇以 Execution Statistics 方式打開。

在該視圖中,顯示了所有調(diào)用到的方法及其運(yùn)行時(shí)間。運(yùn)行時(shí)間有多種表示方法。常用到的是“cumulative time”。該時(shí)間表示了這個(gè)方法調(diào)用的總耗時(shí),其中包含其調(diào)用其他方法的時(shí)間。

我們 MyShop 插件的運(yùn)行結(jié)果如上圖所示?梢钥吹剑琯etProductDir 方法耗時(shí)長。而該方法的作用是打開一個(gè)文件選擇對(duì)話框,等待用戶的選擇,等選擇完成后再關(guān)閉對(duì)話框。因此其時(shí)中包含了等待用戶選擇的部分。這當(dāng)然應(yīng)該在 我們的性能分析中排除在外。除此之外耗費(fèi)時(shí)間長的是 parseContent 方法。該方法用于從包含產(chǎn)品信息的 XML 文件中獲取真正的產(chǎn)品信息數(shù)據(jù)。雙擊該方法查看該方法調(diào)用的詳細(xì)數(shù)據(jù)。

需要注意的是,在下面的 Selected method invokes 表格中,顯示結(jié)果是通過我們?cè)O(shè)置的過濾器過濾后的結(jié)果。在上面的結(jié)果中,我們可以看到,我們自己的方法調(diào)用花費(fèi)的時(shí)間都很小。由此可見,消耗時(shí)間更多的地方是在 XML 解析的方法中。

解決性能問題并驗(yàn)證修改

通過對(duì)上面運(yùn)行數(shù)據(jù)的分析,我們的結(jié)論是,對(duì)性能影響大的是 XML 的解析。而根據(jù)得到的數(shù)據(jù),24 條商品數(shù)據(jù)的獲取已經(jīng)需要 0.5s 的時(shí)間,而在正常使用中的商品數(shù)量則會(huì)達(dá)到根本不可忍受的程度。通過對(duì)代碼的分析,我們得知目前的 XML 解析使用的是 DOM 的分析方

式,而在我們的應(yīng)用中只有 XML 的讀操作而沒有寫操作。在這種方式下,SAX 的解析方式效率要更高。因此我們可以將 XML 解析部分的代碼改為 SAX 方式。

    創(chuàng)建 ProductSAXParser 類

創(chuàng)建該類實(shí)現(xiàn)我們的 ProductParser 接口并繼承自 DefaultHandler 接口完成大部分的分析邏輯。

 

    實(shí)現(xiàn) Parser 方法

實(shí)現(xiàn) ProductParser 接口和 DefaultHandler 定義的方法完成解析邏輯。

 

    更改 XML 解析方式

在父類 ShopView 中更改調(diào)用的解析器為我們新創(chuàng)建的 SAX 實(shí)現(xiàn)。

具體的代碼可參考本文附件所帶的示例代碼。

修改好代碼并按照上面的步驟從新運(yùn)行數(shù)據(jù)分析,可以看到,現(xiàn)在的性能已經(jīng)大為改觀:

可以看到,XML 解析方法的運(yùn)行時(shí)間已經(jīng)由 0.5s 左右縮短到了大約 0.057s。

上一頁1234567下一頁
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd