Python內建型別程式效能分析

2021-08-19 17:08:06 字數 1901 閱讀 7979

timeit模組可以用來測試一小段python**的執行速度。

class timeit.timer(stmt='pass', setup='pass', timer=)

timer是測量小段**執行速度的類。

stmt引數是要測試的**語句(statment);

setup引數是執行**時需要的設定;

timer引數是乙個定時器函式,與平台有關。

timeit.timer.timeit(number=1000000)

timer類中測試語句執行速度的物件方法。number引數是測試**時的測試次數,預設為1000000次。方法返回執行**的平均耗時,乙個float型別的秒數。

def

test1

(): l =

for i in range(1000):

l = l + [i]

deftest2

(): l =

for i in range(1000):

deftest3

(): l = [i for i in range(1000)]

deftest4

(): l = list(range(1000))

from timeit import timer

t1 = timer("test1()", "from __main__ import test1")

print("concat ",t1.timeit(number=1000), "seconds")

t2 = timer("test2()", "from __main__ import test2")

t3 = timer("test3()", "from __main__ import test3")

print("comprehension ",t3.timeit(number=1000), "seconds")

t4 = timer("test4()", "from __main__ import test4")

print("list range ",t4.timeit(number=1000), "seconds")

# ('concat ', 1.7890608310699463, 'seconds')

# ('comprehension ', 0.05671119689941406, 'seconds')

# ('list range ', 0.014147043228149414, 'seconds')

pop操作測試

x = range(2000000)

pop_zero = timer("x.pop(0)","from __main__ import x")

print("pop_zero ",pop_zero.timeit(number=1000), "seconds")

x = range(2000000)

pop_end = timer("x.pop()","from __main__ import x")

print("pop_end ",pop_end.timeit(number=1000), "seconds")

# ('pop_zero ', 1.9101738929748535, 'seconds')

# ('pop_end ', 0.00023603439331054688, 'seconds')

測試pop操作:從結果可以看出,pop最後乙個元素的效率遠遠高於pop第乙個元素

python程式效能分析

目錄 python m cprofile o output file s sort order m module myscript.py o將結果輸出到檔案而不是stdout s排序狀態,選擇那些引數排序,常用 tottime m作為乙個模組而不是指令碼,python3.7的cprofile中有,p...

python如何分析程式效能

when use profiler?有時候你覺得程式執行很慢,想對程式進行優化,但是你又不知道哪部分程式入手,這時候你就需要對程式整體效能進行分析,看看速度慢主要是哪部分程式導致的 why use cprofile?cprofile,乙個python程式效能分析模組。其實python有兩個profi...

優化程式效能

編寫高效程式需要兩個活動 第一,我們必須選擇一組最好的演算法和資料結構 第二,我們必須編寫出編譯器能夠有效優化以轉換成高效可執行 的源 這裡,我們主要講述後者。首先,我們討論一下為什麼要編寫高效程式。不難想象,如果本來要用 天執行完的程式,經過優化只需要 天就可執行完,這是一件多麼令人振奮的 事啊。...