在做性能測試平臺的優(yōu)化過程中,由于啟動任務(wù)相對其他測試任務(wù)比較頻繁,而目前30次兩個包的交叉對比(30次)測試需要耗時30分鐘整,因此打算優(yōu)先對測試流程做一次優(yōu)化,將測試時間消耗降低到20分鐘。

由于一開始估計(jì)樂觀,認(rèn)為啟動時間,一臺設(shè)備理論上啟動頂多1s,1*2*30也就60s,加上其他開銷,5分鐘都夠了,能減少到20分鐘應(yīng)該小半天就能做完了。

于是就來到了第一步:

1.review代碼流程

(1)把啟動流程里相關(guān)的sleep全部review一遍

確實(shí)有一點(diǎn)效果,因?yàn)橛幸徊糠謘leep在啟動任務(wù)執(zhí)行階段,60倍杠桿放大后很可怕,因此去掉部分sleep,居然就減少到了23分鐘了。

第二步一時想不出了,方法耦合嵌套相當(dāng)多,而且適配多個版本的產(chǎn)品,遷一發(fā)動全身,第二步想到的就是將可疑方法監(jiān)控起來

 

2.將可疑方法的耗時監(jiān)控起來

為了方便監(jiān)控,增加了兩個個裝飾器來統(tǒng)計(jì)耗時

萬碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

def costs(fn):    def _wrapper(*args, **kwargs):
        start = time.time()
        fn(*args, **kwargs)        print "%s 函數(shù)cost %s 秒" % (fn.__name__, time.time() - start)    return _wrapperdef costs_with_info(info):    def _wrapper(fn):        print "info: " + info        return costs(fn)    return _wrapper

萬碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

網(wǎng)友評論