Python執(zhí)行時(shí)間的計(jì)算方法小結(jié)
首先說(shuō)一下我遇到的坑,生產(chǎn)上遇到的問(wèn)題,我調(diào)度Python腳本執(zhí)行并監(jiān)控這個(gè)進(jìn)程,python腳本運(yùn)行時(shí)間遠(yuǎn)遠(yuǎn)大于python腳本中自己統(tǒng)計(jì)的程序執(zhí)行時(shí)間。
監(jiān)控python腳本執(zhí)行的時(shí)間是36個(gè)小時(shí),而python腳本中統(tǒng)計(jì)自己執(zhí)行的時(shí)間是4個(gè)小時(shí)左右。
問(wèn)題暴漏之后首先想到的是Linux出了問(wèn)題,查找各種日志未發(fā)現(xiàn)有何異常。
然后是想到python中用到的py2neo的寫(xiě)數(shù)據(jù)異步,阻塞進(jìn)程執(zhí)行。
最后,終于找到問(wèn)題的所在:python腳本使用統(tǒng)計(jì)時(shí)間的方式是time.clock(),而這種方式統(tǒng)計(jì)的是CPU的執(zhí)行時(shí)間,不是程序的執(zhí)行時(shí)間。
接下來(lái),就幾種python的統(tǒng)計(jì)時(shí)間方式對(duì)比一下:
方法1:
import datetime starttime = datetime.datetime.now() #long running #do something other endtime = datetime.datetime.now() print (endtime - starttime).seconds
datetime.datetime.now()獲取的是當(dāng)前日期,在程序執(zhí)行結(jié)束之后,這個(gè)方式獲得的時(shí)間值為程序執(zhí)行的時(shí)間。
方法2:
start = time.time() #long running #do something other end = time.time() print end-start
time.time()獲取自紀(jì)元以來(lái)的當(dāng)前時(shí)間(以秒為單位)。如果系統(tǒng)時(shí)鐘提供它們,則可能存在秒的分?jǐn)?shù)。所以這個(gè)地方返回的是一個(gè)浮點(diǎn)型類(lèi)型。這里獲取的也是程序的執(zhí)行時(shí)間。
方法3:
start = time.clock() #long running #do something other end = time.clock() print end-start
time.clock()返回程序開(kāi)始或第一次被調(diào)用clock()以來(lái)的CPU時(shí)間。 這具有與系統(tǒng)記錄一樣多的精度。返回的也是一個(gè)浮點(diǎn)類(lèi)型。這里獲得的是CPU的執(zhí)行時(shí)間。
注:程序執(zhí)行時(shí)間=cpu時(shí)間 + io時(shí)間 + 休眠或者等待時(shí)間
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- Python如何計(jì)算語(yǔ)句執(zhí)行時(shí)間
- Python代碼執(zhí)行時(shí)間測(cè)量模塊timeit用法解析
- python 限制函數(shù)執(zhí)行時(shí)間,自己實(shí)現(xiàn)timeout的實(shí)例
- 在IPython中進(jìn)行Python程序執(zhí)行時(shí)間的測(cè)量方法
- Python實(shí)現(xiàn)監(jiān)控程序執(zhí)行時(shí)間并將其寫(xiě)入日志的方法
- python使用裝飾器和線(xiàn)程限制函數(shù)執(zhí)行時(shí)間的方法
- Python執(zhí)行時(shí)間的幾種計(jì)算方法
相關(guān)文章
python實(shí)現(xiàn)簡(jiǎn)單飛機(jī)大戰(zhàn)小游戲
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單飛機(jī)大戰(zhàn)小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05dpn網(wǎng)絡(luò)的pytorch實(shí)現(xiàn)方式
今天小編就為大家分享一篇dpn網(wǎng)絡(luò)的pytorch實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01Python通過(guò)命令開(kāi)啟http.server服務(wù)器的方法
這篇文章主要給大家介紹了關(guān)于Python通過(guò)命令開(kāi)啟http.server服務(wù)器的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11python smtplib模塊發(fā)送SSL/TLS安全郵件實(shí)例
這篇文章主要介紹了python smtplib模塊發(fā)送SSL/TLS安全郵件實(shí)例,本文講解了二種發(fā)送方式,需要的朋友可以參考下2015-04-04利用python中集合的唯一性實(shí)現(xiàn)去重
集合,用{ }表示,集合中所有元素具有唯一性。這篇文章給大家介紹利用python中集合的唯一性實(shí)現(xiàn)去重,感興趣的朋友一起看看吧2020-02-02如何用Python編寫(xiě)一個(gè)電子考勤系統(tǒng)
這篇文章主要介紹了用Python編寫(xiě)一個(gè)電子考勤系統(tǒng),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02Pytorch如何指定device(cuda or cpu)
這篇文章主要介紹了Pytorch如何指定device(cuda or cpu)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06python實(shí)現(xiàn)web郵箱掃描的示例(附源碼)
這篇文章主要介紹了python實(shí)現(xiàn)web郵箱掃描的示例(附源碼),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-03-03