Python執(zhí)行時(shí)間的幾種計(jì)算方法
首先說一下我遇到的坑,生產(chǎ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í)左右。
問題暴漏之后首先想到的是linux出了問題,查找各種日志未發(fā)現(xiàn)有何異常。
然后是想到python中用到的py2neo的寫數(shù)據(jù)異步,阻塞進(jìn)程執(zhí)行。
最后,終于找到問題的所在:python腳本使用統(tǒng)計(jì)時(shí)間的方式是time.clock(),而這種方式統(tǒng)計(jì)的是CPU的執(zhí)行時(shí)間,不是程序的執(zhí)行時(shí)間。
接下來,就幾種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ì)元以來的當(dāng)前時(shí)間(以秒為單位)。如果系統(tǒng)時(shí)鐘提供它們,則可能存在秒的分?jǐn)?shù)。所以這個(gè)地方返回的是一個(gè)浮點(diǎn)型類型。這里獲取的也是程序的執(zhí)行時(shí)間。
方法3:
start = time.clock() #long running #do something other end = time.clock() print end-start
time.clock()返回程序開始或第一次被調(diào)用clock()以來的CPU時(shí)間。 這具有與系統(tǒng)記錄一樣多的精度。返回的也是一個(gè)浮點(diǎn)類型。這里獲得的是CPU的執(zhí)行時(shí)間。
注:程序執(zhí)行時(shí)間=cpu時(shí)間 + io時(shí)間 + 休眠或者等待時(shí)間
以上就是Python執(zhí)行時(shí)間的幾種計(jì)算方法的詳細(xì)內(nèi)容,更多關(guān)于Python執(zhí)行時(shí)間的計(jì)算方法的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
關(guān)于Python不換行輸出和不換行輸出end=““不顯示的問題(親測已解決)
這篇文章主要介紹了關(guān)于Python不換行輸出和不換行輸出end=““不顯示的問題(親測已解決),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
python畫圖——實(shí)現(xiàn)在圖上標(biāo)注上具體數(shù)值的方法
今天小編就為大家分享一篇python畫圖——實(shí)現(xiàn)在圖上標(biāo)注上具體數(shù)值的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07
Python基于socket實(shí)現(xiàn)TCP/IP客戶和服務(wù)器通信
本主要介紹了Python socket網(wǎng)絡(luò)編程TCP/IP服務(wù)器與客戶端通信的相關(guān)資料,這里對(duì)Scoket 進(jìn)行詳解并創(chuàng)建TCP服務(wù)器及TCP 客戶端實(shí)例代碼,需要的朋友可以參考下2021-06-06
python實(shí)現(xiàn)獲取電腦所連接的wifi密碼
電腦連接wifi后,很難直觀地看到當(dāng)前連接wifi的密碼,需要借助命令行公管局才可以查看到相關(guān)信息,本文為大家介紹一下如何利用python獲取電腦所連接的wifi密碼,感興趣的可以了解下2023-11-11
python Django批量導(dǎo)入不重復(fù)數(shù)據(jù)
這篇文章主要介紹了python Django批量導(dǎo)入不重復(fù)數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2016-03-03
Flask使用SQLAlchemy實(shí)現(xiàn)持久化數(shù)據(jù)
本文主要介紹了Flask使用SQLAlchemy實(shí)現(xiàn)持久化數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07
Python實(shí)現(xiàn)插入排序和選擇排序的方法
這篇文章主要介紹了Python實(shí)現(xiàn)插入排序和選擇排序的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05

