看板 Python 關於我們 聯絡資訊
題外話 XD 要測微效能的差異,可考慮 python 內建(總是如此啊)更準確的 timeit 模組 使用方式如: import timeit run_test1 = ''' import testit testit.test1(testit.al, testit.bl) ''' run_test2 = ''' import testit testit.test2(testit.al, testit.bl) ''' run_test3 = ''' import testit testit.test3(testit.al, testit.bl) ''' al = [] bl = [] for i in range(1000): al.append(i) bl.append(999 -i) def test1(al, bl): al = al + bl def test2(al, bl): al.extend(bl) def test3(al, bl): al += bl if __name__ == '__main__': times = 100000 t1 = timeit.Timer(stmt=run_test1) print "%.8f sec/pass" % (t1.timeit(number=times)/times) t2 = timeit.Timer(stmt=run_test2) print "%.8f sec/pass" % (t2.timeit(number=times)/times) t3 = timeit.Timer(stmt=run_test3) print "%.8f sec/pass" % (t3.timeit(number=times)/times) # See also: http://docs.python.org/library/timeit.html 附帶這個測試的 output 作為參考 0.00002528 sec/pass 0.00002075 sec/pass 0.00002029 sec/pass PS. 就算這麼做,還是要跑第二次之後才比較接近實際上想看到的差異 第一次 % python testit.py 0.00002639 sec/pass 0.00002135 sec/pass 0.00002575 sec/pass 第二次 % python testit.py 0.00002557 sec/pass 0.00002103 sec/pass 0.00001995 sec/pass 第三次 % python testit.py 0.00002528 sec/pass 0.00002075 sec/pass 0.00002029 sec/pass -- keitheis ") -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.121.154.205 ※ 編輯: keitheis 來自: 122.121.154.205 (04/25 15:29) ※ 編輯: keitheis 來自: 122.121.154.205 (04/25 15:33)
Lucemia:推薦 XD 04/26 02:45