2014-09-01 87 views
1

可以說我有1000萬行的輸入。 我想知道這需要多久才能做到這一點:Python循環速度來源

if line not in list: 
    list.append(line) 

是否有另一種,可以告訴我的各項工作任務的大致速度的任何網站或源?

+3

你試過'timeit'嗎? – 2014-09-01 13:24:40

回答

3

你可以讓你的程序的總運行時間與此:

time python3 program.py 
在終端

。這將有類似的輸出:

real 0m0.184s 
user 0m0.032s 
sys  0m0.015s 

你可以得到它需要多長時間特定的功能與運行n時間:

from timeit import timeit 

def foo(): 
    return 123456789 + 987654321 

n = 10000000 
time = timeit(foo, number=n) 
print(time) 

您也可以時間多久部分代碼需要用time

from time import time 

start = time() 

# code to be timed 

finish = time() 
print(finish - start) 
+0

解釋打印語句在timeIT – AWE 2014-09-01 13:47:44

+0

@AWE我簡化了它。 – 2014-09-01 13:50:00

+0

答案在幾秒鐘內? – AWE 2014-09-01 14:43:01

1

運行在終端命令:

time python your_file.py 

結果一定是這樣的:

real 0m0.018s 
user 0m0.009s 
sys  0m0.009s 

real - refers to the actual elasped time 
user - refers to the amount of cpu time spent outside of kernel 
sys - refers to the amount of cpu time spent inside kernel specific functions 

THIS stachoverflow答案閱讀更多關於realusersys由Con cernedOfTunbridgeWells。

爲了查找回波線的性能,您必須在輪廓儀上使用逐行時間和執行頻率,因此line_profiler是一種簡單且不顯眼的方式來分析您的代碼,並用它來查看每條線的速度和頻率的代碼正在腳本中運行。您可以安裝由羅伯特·克恩書面line_profiler,您可以通過PIP安裝Python包:

$ pip install line_profiler 

閱讀文檔HERE