在做性能測試平臺的優(yōu)化過程中,由于啟動任務相對其他測試任務比較頻繁,而目前30次兩個包的交叉對比(30次)測試需要耗時30分鐘整,因此打算優(yōu)先對測試流程做一次優(yōu)化,將測試時間消耗降低到20分鐘。
由于一開始估計樂觀,認為啟動時間,一臺設備理論上啟動頂多1s,1*2*30也就60s,加上其他開銷,5分鐘都夠了,能減少到20分鐘應該小半天就能做完了。
于是就來到了第一步:
1.review代碼流程
(1)把啟動流程里相關的sleep全部review一遍
確實有一點效果,因為有一部分sleep在啟動任務執(zhí)行階段,60倍杠桿放大后很可怕,因此去掉部分sleep,居然就減少到了23分鐘了。
第二步一時想不出了,方法耦合嵌套相當多,而且適配多個版本的產品,遷一發(fā)動全身,第二步想到的就是將可疑方法監(jiān)控起來
2.將可疑方法的耗時監(jiān)控起來
為了方便監(jiān)控,增加了兩個個裝飾器來統(tǒng)計耗時
def costs(fn): def _wrapper(*args, **kwargs): start = time.time() fn(*args, **kwargs) print "%s 函數cost %s 秒" % (fn.__name__, time.time() - start) return _wrapperdef costs_with_info(info): def _wrapper(fn): print "info: " + info return costs(fn) return _wrapper
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現JSON轉Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結合數據結構來看看(二) 2017-07-26