Ⅰ python中程序運行時間的計算
單細胞中各種同類工具層出不重,往往需要比較軟體間的重現性,運行速度等,因此查閱了python中程序運行時間計算的各種方法。
程序中主要有兩種時間CPU time和Wall time, 前者就是CPU實際運行的時間,包含系統CPU time和程序CPU time;
Ⅱ python 列印出函數執行所用時間
使用timeit模塊,先介紹下:
timeit 模塊
timeit模塊定義了接受兩個參數的Timer類。兩個參數都是字元串。 第一個參數是你要計時的語句或者函數。 傳遞給Timer的第二個參數是為第一個參數語句構建環境的導入語句。 從內部講,timeit構建起一個獨立的虛擬環境, 手工地執行建立語句,然後手工地編譯和執行被計時語句。
一旦有了Timer對象,最簡單的事就是調用timeit(),它接受一個參數為每個測試中調用被計時語句的次數,默認為一百萬次;返回所耗費的秒數。
Timer對象的另一個主要方法是repeat(), 它接受兩個可選參數。 第一個參數是重復整個測試的次數,第二個參數是每個測試中調用被計時語句的次數。 兩個參數都是可選的,它們的默認值分別是3和1000000。repeat()方法返回以秒記錄的每個測試循環的耗時列表。Python有一個方便的min函數可以把輸入的列表返回成最小值,如: min(t.repeat(3, 1000000))
你可以在命令行使用timeit模塊來測試一個已存在的Python程序,而不需要修改代碼。
再給你個例子,你就知道怎麼做了。
#-*-coding:utf-8-*-
#!/bin/envpython
deftest1():
n=0
foriinrange(101):
n+=i
returnn
deftest2():
returnsum(range(101))
deftest3():
returnsum(xforxinrange(101))
if__name__=='__main__':
fromtimeitimportTimer
t1=Timer("test1()","from__main__importtest1")
t2=Timer("test2()","from__main__importtest2")
t3=Timer("test3()","from__main__importtest3")
printt1.timeit(1000000)
printt2.timeit(1000000)
printt3.timeit(1000000)
printt1.repeat(3,1000000)
printt2.repeat(3,1000000)
printt3.repeat(3,1000000)
Ⅲ python 計算程序運行了多長時間
python 計算程序運行時間:
6.760052s
一、import time
Ⅳ python記錄程序運行時間的三種方法
python記錄程序運行時間的三種方法
這里提供了python記錄程序運行時間的三種方法,並附有實現代碼,最後進行比較,大家參考下:
方法1
import datetime
starttime = datetime.datetime.now()
#long running
endtime = datetime.datetime.now()
print (endtime - starttime).seconds
方法 2
start = time.time()
run_fun()
end = time.time()
print end-start
方法3
start = time.clock()
run_fun()
end = time.clock()
print end-start
方法1和方法2都包含了其他程序使用CPU的時間,是程序開始到程序結束的運行時間。
方法3算只計算了程序運行的CPU時間
感謝閱讀,希望能幫助到大家
Ⅳ 如何使用Python讓某段程序固定在每天早上八點鍾開始運行
你在windows下根本不用這么麻煩:
首先,比如你的程序名字是 test.py
如果你想調用某個具體函數,就自己寫一個的文件,比如
import spider
spider.go()
然後,用系統at命令指定幾點幾分或者每個星期幾或者每個月的第幾個星期幾等執行某個程序。在執行程序的地方寫到:
c:\python25\python.exe myfile.py
這樣就可以了。
===================================
如果你覺得簡單的方法不好或者你要在其它系統下也可以用,那就這樣:
首先,寫一串代碼:大致意思如下,把_換成空格
import os,time,spider
while True:
__time.sleep(1)
__if time.ctime()[12:19]=="8:00:00" or time.ctime()[12:19]=="20:00:00" :
____spider.go() #舉個例子
然後,開機就執行這個文件。windows下可以把文件存為pyw然後開機啟動這樣沒有黑框。其它系統你愛怎麼樣都可以了(mac沒用過不知道)
Ⅵ 用python+編寫一個程序,列印出執行1+1運行100次的時間
您好!您可以使用Python的time模塊來計算執行1+1運行100次的時間。首先,您需要在您的程序中導入時間模塊。然後,您可以使用time.time()函數來獲取當前時間,並在開始執行運算之前調用它來獲取開始時間,在運算完成之後再調用它來獲取結束時間,然後將兩者相減來計算出總運行時間。下面是一個例子:
import time
# 記錄開始時間
start_time = time.time()
# 執行1+1運算100次
for i in range(100):
1 + 1
# 記錄結束時間
end_time = time.time()
# 計算運行時間
run_time = end_time - start_time
# 列印運行時間
print("運行時間: ", run_time)
希望這些信息對您有幫助!
Ⅶ python3.5中怎麼輸出運行時間
通過代碼實現。
具體代碼。start=time。clock()run_fun()end=time。clock()printend-start這種演算法只計算了程序運行的CPU時間。
我們知道為了提高代碼的運行速度,我們需要對書寫的python代碼進行性能測試,而代碼性能的高低的直接反饋是電腦運行代碼所需要的時間。
Ⅷ 7種檢測Python程序運行時間、CPU和內存佔用的方法
1. 使用裝飾器來衡量函數執行時間
有一個簡單方法,那就是定義一個裝飾器來測量函數的執行時間,並輸出結果:
import time
from functoolsimport wraps
import random
def fn_timer(function):
@wraps(function)
def function_timer(*args, **kwargs):
t0= time.time()
result= function(*args, **kwargs)
t1= time.time()
print("Total time running %s: %s seconds" %
(function.__name__, str(t1- t0))
)
return result
return function_timer
@fn_timer
def random_sort(n):
return sorted([random.random() for i in range(n)])
if __name__== "__main__":
random_sort(2000000)
輸出:Total time running random_sort: 0.6598007678985596 seconds
使用方式的話,就是在要監控的函數定義上面加上 @fn_timer 就行了
或者
# 可監控程序運行時間
import time
import random
def clock(func):
def wrapper(*args, **kwargs):
start_time= time.time()
result= func(*args, **kwargs)
end_time= time.time()
print("共耗時: %s秒" % round(end_time- start_time, 5))
return result
return wrapper
@clock
def random_sort(n):
return sorted([random.random() for i in range(n)])
if __name__== "__main__":
random_sort(2000000)
輸出結果:共耗時: 0.65634秒
2. 使用timeit模塊
另一種方法是使用timeit模塊,用來計算平均時間消耗。
執行下面的腳本可以運行該模塊。
這里的timing_functions是Python腳本文件名稱。
在輸出的末尾,可以看到以下結果:4 loops, best of 5: 2.08 sec per loop
這表示測試了4次,平均每次測試重復5次,最好的測試結果是2.08秒。
如果不指定測試或重復次數,默認值為10次測試,每次重復5次。
3. 使用Unix系統中的time命令
然而,裝飾器和timeit都是基於Python的。在外部環境測試Python時,unix time實用工具就非常有用。
運行time實用工具:
輸出結果為:
Total time running random_sort: 1.3931210041 seconds
real 1.49
user 1.40
sys 0.08
第一行來自預定義的裝飾器,其他三行為:
real表示的是執行腳本的總時間
user表示的是執行腳本消耗的CPU時間。
sys表示的是執行內核函數消耗的時間。
注意:根據維基網路的定義,內核是一個計算機程序,用來管理軟體的輸入輸出,並將其翻譯成CPU和其他計算機中的電子設備能夠執行的數據處理指令。
因此,Real執行時間和User+Sys執行時間的差就是消耗在輸入/輸出和系統執行其他任務時消耗的時間。
4. 使用cProfile模塊
5. 使用line_profiler模塊
6. 使用memory_profiler模塊
7. 使用guppy包