您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源性能測(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 視圖來(lái)分析程序中各個(gè)方法的運(yùn)行時(shí)間。打開(kāi)該視圖的方式是,數(shù)據(jù)收集進(jìn)程上點(diǎn)右鍵,選擇以 Execution Statistics 方式打開(kāi)。

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

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

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

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

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

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

    創(chuàng)建 ProductSAXParser 類(lèi)

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

 

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

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

 

    更改 XML 解析方式

在父類(lèi) 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。

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