幾種Python執行時間的計算方法__Python

來源:互聯網
上載者:User

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

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

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

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

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

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

time.clock()返回程式開始或第一次被調用clock()以來的CPU時間。 這具有與系統記錄一樣多的精度。返回的也是一個浮點類型。這裡獲得的是CPU的執行時間
註:程式執行時間=cpu時間 + io時間 + 休眠或者等待時間

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.