計算python腳本的運行時間


首先說一下我遇到的坑,生產上遇到的問題,我調度Python腳本執行並監控這個進程,python腳本運行時間遠遠大於python腳本中自己統計的程序執行時間。
監控python腳本執行的時間是36個小時,而python腳本中統計自己執行的時間是4個小時左右。
問題暴漏之后首先想到的是linux出了問題,查找各種日志未發現有何異常。
然后是想到python中用到的py2neo的寫數據異步,阻塞進程執行。
最后,終於找到問題的所在:python腳本使用統計時間的方式是time.clock(),而這種方式統計的是CPU的執行時間,不是程序的執行時間。
接下來,就幾種python的統計時間方式對比一下:

方法1:

import datetime
starttime = datetime.datetime.now()
#long running
#do something other
endtime = datetime.datetime.now()
print (endtime - starttime).seconds

datetime.datetime.now()獲取的是當前日期,在程序執行結束之后,這個方式獲得的時間值為程序執行的時間。

方法2:

start = time.time()
#long running
#do something other
end = time.time()
print end-start

time.time()獲取自紀元以來的當前時間(以秒為單位)。如果系統時鍾提供它們,則可能存在秒的分數。所以這個地方返回的是一個浮點型類型。這里獲取的也是程序的執行時間。

方法3:

start = time.clock()
#long running
#do something other
end = time.clock()
print end-start

 

time.clock()返回程序開始或第一次被調用clock()以來的CPU時間。 這具有與系統記錄一樣多的精度。返回的也是一個浮點類型。這里獲得的是CPU的執行時間。

原文:https://blog.csdn.net/wangshuang1631/article/details/54286551/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM