python函數(shù)運行時間的簡單介紹

Python如何獲得程序運行時間的格式化顯示

(1)在程序啟動時獲得當前時間:

創(chuàng)新互聯(lián)專注于清苑企業(yè)網(wǎng)站建設,自適應網(wǎng)站建設,商城開發(fā)。清苑網(wǎng)站建設公司,為清苑等地區(qū)提供建站服務。全流程按需求定制網(wǎng)站,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務

recordTime = time.time()

(2)同時獲得當前時間的格式化串:

startTime = time.strftime("%H%M%S")

(3)在主循環(huán)中按秒進行判斷:

timeGap = time.time() - recordTime

if timeGap = 1: #這是按1秒設置的,可以根據(jù)實際需要設置

recordTime += timeGap

showTime_String = get_lapseTime(startTime, time.strftime("%H%M%S"))

(4)函數(shù):

def get_lapseTime(aTime, bTime):

aNum = 3600 * int(aTime[:2]) + 60 * int(aTime[2:4]) + int(aTime[-2:])

bNum = 3600 * int(bTime[:2]) + 60 * int(bTime[2:4]) + int(bTime[-2:])

gapH = (bNum - aNum) // 3600

gapM = ((bNum - aNum) % 3600) // 60

gapS = ((bNum - aNum) % 3600) % 60

gapTime = "%02d:%02d:%02d"%(gapH,gapM,gapS)

return(gapTime)

在python里用time.time判斷函數(shù)的執(zhí)行時間靠譜嗎

使用time.time來統(tǒng)計函數(shù)的執(zhí)行時間,程序只會執(zhí)行一次,存在很大的隨機因素。

timtit包就可以重復執(zhí)行函數(shù)多次,然后將多次執(zhí)行結果取平均值。相比起來更優(yōu)。

然而程序執(zhí)行時間很大程度還受計算機性能的影響,衡量程序好壞更靠譜的手段是計算時間復雜度。

7種檢測Python程序運行時間、CPU和內(nèi)存占用的方法

1. 使用裝飾器來衡量函數(shù)執(zhí)行時間

有一個簡單方法,那就是定義一個裝飾器來測量函數(shù)的執(zhí)行時間,并輸出結果:

import time

from functoolsimport wraps

import random

def fn_timer(function):

@wraps(function)

def function_timer(*args, **kwargs):

? t0= time.time()

? result= function(*args, **kwargs)

? t1= time.time()

? print("Total time running %s: %s seconds" %

? ? ? (function.__name__, str(t1- t0))

)

? return result

return function_timer

@fn_timer

def random_sort(n):

return sorted([random.random() for i in range(n)])

if __name__== "__main__":

random_sort(2000000)

輸出:Total time running random_sort: 0.6598007678985596 seconds

使用方式的話,就是在要監(jiān)控的函數(shù)定義上面加上 @fn_timer 就行了

或者

# 可監(jiān)控程序運行時間

import time

import random

def clock(func):

def wrapper(*args, **kwargs):

? ? start_time= time.time()

? ? result= func(*args, **kwargs)

? ? end_time= time.time()

? ? print("共耗時: %s秒" % round(end_time- start_time, 5))

? ? return result

return wrapper

@clock

def random_sort(n):

return sorted([random.random() for i in range(n)])

if __name__== "__main__":

random_sort(2000000)

輸出結果:共耗時: 0.65634秒

2. 使用timeit模塊

另一種方法是使用timeit模塊,用來計算平均時間消耗。

執(zhí)行下面的腳本可以運行該模塊。

這里的timing_functions是Python腳本文件名稱。

在輸出的末尾,可以看到以下結果:4?loops, best of?5:?2.08?sec per loop

這表示測試了4次,平均每次測試重復5次,最好的測試結果是2.08秒。

如果不指定測試或重復次數(shù),默認值為10次測試,每次重復5次。

3. 使用Unix系統(tǒng)中的time命令

然而,裝飾器和timeit都是基于Python的。在外部環(huán)境測試Python時,unix time實用工具就非常有用。

運行time實用工具:

輸出結果為:

Total?time running random_sort:?1.3931210041?seconds

real?1.49

user?1.40

sys?0.08

第一行來自預定義的裝飾器,其他三行為:

real表示的是執(zhí)行腳本的總時間

user表示的是執(zhí)行腳本消耗的CPU時間。

sys表示的是執(zhí)行內(nèi)核函數(shù)消耗的時間。

注意:根據(jù)維基百科的定義,內(nèi)核是一個計算機程序,用來管理軟件的輸入輸出,并將其翻譯成CPU和其他計算機中的電子設備能夠執(zhí)行的數(shù)據(jù)處理指令。

因此,Real執(zhí)行時間和User+Sys執(zhí)行時間的差就是消耗在輸入/輸出和系統(tǒng)執(zhí)行其他任務時消耗的時間。

4. 使用cProfile模塊

5. 使用line_profiler模塊

6. 使用memory_profiler模塊

7. 使用guppy包

python函數(shù)深入淺出 16.time.sleep()函數(shù)詳解

time.sleep() 函數(shù)命名來源于英文單詞time(時間)和sleep(睡眠)。

time 是python帶的非內(nèi)置庫,使用時需要import,主要用于處理和時間相關的操作。

time.sleep用于給定時間內(nèi)掛起(等待)當前線程的執(zhí)行。

time.sleep() 函數(shù)的例子:

可以注釋掉time.sleep(2)再運行一次對比一下

可以看到雖然都是打印出一樣的結果,但time.sleep()加入了等待時間

這里還要解釋一下python中線程與進程的區(qū)別。

舉個例子,廚房做菜看成是一個進程,那么這個進程下面就可能有多個人或一個人(cpu基本執(zhí)行單元,即線程)來執(zhí)行,多個人可以分別洗菜,刷碗,擺盤等等同時作業(yè),他們又是共享這個廚房的資源的。每個人存在一定的資源競爭關系,比如爐火只有1個。

這里time.sleep是針對線程執(zhí)行的,也就是其中一個人去sleep睡覺了,不影響其他人的繼續(xù)工作。

參數(shù)

該函數(shù)沒有返回值。

結果類似如下:

可以看到秒數(shù)相差了5

time.sleep()常用于推遲執(zhí)行的場景

在python中,與時間相關的模塊有:time,datetime以及calendar

對基礎運行環(huán)境有疑問的,推薦參考: python函數(shù)深入淺出 0.基礎篇

python長時間運行 時間不準

python長時間運行 時間不準調(diào)整設置就可以。

這是因為,run 函數(shù)不是一瞬間就運行完成的。它運行也會消耗時間。

可以使用1秒作為deltatime。如果涉及到更精確的時間,則還是需要用time.time()來計算循環(huán)初始時間,然后在循環(huán)結尾計算中間的時間差來獲得更精準的deltatime。

python 計算程序運行了多長時間?

python 計算程序運行時間:

6.760052s

一、import time

二、start =time.clock()

三、#執(zhí)行程序,比如計算1到100的和。

sum=0

for i in range(1,101):

sum=sum+i

print(sum )

四、end = time.clock()

print('Running time: %s Seconds'%(end-start))#其中end-start就是程序運行的時間,單位是秒。

五、

#全部程序如下

import time

start =time.clock()

sum=0

for i in range(1,101):

sum=sum+i

print(sum )

end = time.clock()

print('Running time: %s Seconds'%(end-start))

#輸出結果

1、問題:

用python計算昨天,今天,明天的日期是這個格式么?Python2.7(r27:82525,Jul42010,09:01:59)[MSCv.150032bit(Intel)]onwin32Type防抓取,突襲網(wǎng)提供內(nèi)容,請查看原文。

給定你兩個日期,如何計算這兩個日期之間間隔幾天,幾個星期,幾個月,幾年?

為什么Python適合科學計算?毫不夸張的說,你用python開發(fā)程序只要fortran的1/10時間。4.其他。它豐富而且統(tǒng)一,不像C++的庫那么雜(好比linux的各種發(fā)行版),python學好n防抓取,突襲網(wǎng)提供內(nèi)容,請查看原文。

2、解決方法:

我有個問題想請教下,如何用python計算出某目錄中所有文件存...1234567891011import?osimport?datetime?path?=n防抓取,突襲網(wǎng)提供內(nèi)容,請查看原文。

標準模塊datetime和第三方包dateutil(特別是dateutil的rrule.count方法)能非常簡單迅速的幫你解決這個問題。

Python構造日期對象和計算日期間天數(shù)差的問題python時間模塊time,日期模塊datetime,格式化用strftime()importdatetime防抓取,突襲網(wǎng)提供內(nèi)容,請查看原文。

from dateutil import rrule import datetime def weeks_between(start_date, end_date): weeks = rrule.rrule(rrule.WEEKLY, dtstart=start_date, until=end_date) return weeks.count( )

Python構造日期對象和計算日期間天數(shù)差的問題python時間模塊time,日期模塊datetime,格式化用strftime()gt;gt;gt;importdatetimegt;gt;gt;help(datetime)查看2009年5月31日和2009...防抓取,突襲網(wǎng)提供內(nèi)容,請查看原文。

rrule方法允許你根據(jù)日期(DAILY),星期(WEEKLY),年(YEARLY)來設置尺度計算。下面用一段代碼來測試一下:

pytho將txt文件轉(zhuǎn)換為列表問:想把這些帶空格的文字轉(zhuǎn)化為python中列表,就是['大數(shù)據(jù)','和’,......]...答:importrecontent="大數(shù)據(jù)和社會"datas=re.s防抓取,突襲網(wǎng)提供內(nèi)容,請查看原文。

if _ _name_ _=='_ _main_ _': starts = [datetime.date(2005, 01, 04), datetime.date(2005, 01, 03)] end = datetime.date(2005, 01, 10) for s in starts: days = rrule.rrule(rrule.DAILY, dtstart=s, until=end).count( ) print "%d days shows as %d weeks "% (days, weeks_between(s, end))

pytho怎么安裝tensor答:easy_install或者pip都可以,要看你這個tensor是啥時候的東西了,應該pip能解決!你在python的安裝目錄下找pip,之后放到path里面去,之后運行pip--help去看詳細的命令介紹,很簡單的PS:如果在windows下,python包安裝會很費勁,不是少了...防抓取,突襲網(wǎng)提供內(nèi)容,請查看原文。

將輸出這樣的結果:

初學Pytho2.7關于整數(shù)相加的問題!問:#-*-coding:utf-8-*-sum=0forxin【1,2,3,4,5,6,7,8,9,10】:...答:所說所有的變量都是對象。對象在pytho防抓取,突襲網(wǎng)提供內(nèi)容,請查看原文。

7 days shows as 1 weeks

如何用pytho寫rhino文件答:1、首先下載MAC版的64位Eclipse,然后解壓縮。2、下載Python。MAC自帶的是的python版本比較老,所以去下個新版本,下載后安裝,dmg的pyth防抓取,突襲網(wǎng)提供內(nèi)容,請查看原文。

8 days shows as 2 weeks

為什么python中print可以運行,而print"ilo...答:為什么python中print可以運行,而防抓取,突襲網(wǎng)提供內(nèi)容,請查看原文。

Rrule計算是以整數(shù)計算的,它不會返回0.5星期之類的結果,所以8天會被算為兩個星期。

pytho安裝路徑錯誤怎么卸載問:python安裝時路徑寫錯,忘記這個電腦沒沒E盤,安裝失敗,卸載時總報錯,...答:可以重啟一下你的電腦然后安裝電腦管家在電腦上通過工具箱的軟件管理,自動卸載該軟件即防抓取,突襲網(wǎng)提供內(nèi)容,請查看原文。

當然你可以不必定義一個尺寸,直接一句return rrule.rrule(rrule.WEEKLY, dtstart=start_date, until=end_date).count( )就可以得到結果。

pytho編寫腳本用于什么測試答:PY可以實現(xiàn)很多東西的自動化啊主要可以寫一些腳本幫助解決一些重復性勞作以及解決程序的一些自動化防抓取,突襲網(wǎng)提供內(nèi)容,請查看原文。

希望本文所述對大家的Python程序設計有所幫助。

分享題目:python函數(shù)運行時間的簡單介紹
網(wǎng)址分享:http://muchs.cn/article4/hssoie.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、服務器托管、App開發(fā)、網(wǎng)站導航、域名注冊、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設