python3 計算python指令碼的執行時間

2022-09-06 08:12:06 字數 1093 閱讀 5613

首先說一下我遇到的坑,生產上遇到的問題,我排程python指令碼執行並監控這個程序,python指令碼執行時間遠遠大於python指令碼中自己統計的程式執行時間。

監控python指令碼執行的時間是36個小時,而python指令碼中統計自己執行的時間是4個小時左右。

問題暴漏之後首先想到的是linux出了問題,查詢各種日誌未發現有何異常。

然後是想到python中用到的py2neo的寫資料非同步,阻塞程序執行。

最後,終於找到問題的所在:python指令碼使用統計時間的方式是time.clock(),而這種方式統計的是cpu的執行時間,不是程式的執行時間。

接下來,就幾種python的統計時間方式對比一下:

import datetime

starttime = datetime.datetime.now()

#long running

#do something other

endtime = datetime.datetime.now()

print (endtime - starttime).seconds

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

start = time.time()

#long running

#do something other

end = time.time()

print end-start

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

start = time.clock()

#long running

#do something other

end = time.clock()

print end-start

time.clock()返回程式開始或第一次被呼叫clock()以來的cpu時間。 這具有與系統記錄一樣多的精度。返回的也是乙個浮點型別。這裡獲得的是cpu的執行時間。

原文:

python3 切片 python3 切片

取乙個list或tuple的部分元素是非常常見的操作。比如,乙個list如下 l michael sarah tracy bob jack 取前3個元素,應該怎麼做?笨辦法 l 0 l 1 l 2 michael sarah tracy 之所以是笨辦法是因為擴充套件一下,取前n個元素就沒轍了。取前n...

python3安裝 Python3的安裝

1.anaconda安裝 2.安裝包安裝 3.linux下的命令列安裝 centos red hat 1 sudo yum install y sudo yum update3 sudo yum install y python35u python35u libs python35u devel p...

python3異常例項 Python3 錯誤和異常

錯誤和異常 程式執行時有兩種可以分辨的錯誤 syntax error 和 exception 按中文來說,就是語法錯誤和異常。語法錯誤 語法錯誤也就是解析錯誤,是我們最優可能遇到的錯誤。while true print hello world file line 1,in?while true pr...