Re: [問題] List擴編的處理速度...

看板Python作者 (無)時間15年前 (2009/04/25 15:23), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串5/9 (看更多)
題外話 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)

04/26 02:45, , 1F
推薦 XD
04/26 02:45, 1F
文章代碼(AID): #19yhfrnk (Python)
討論串 (同標題文章)
文章代碼(AID): #19yhfrnk (Python)