真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

包含python計算函數(shù)用時的詞條

python 統(tǒng)計 函數(shù)運行 次數(shù)。

import time

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供單縣網(wǎng)站建設(shè)、單縣做網(wǎng)站、單縣網(wǎng)站設(shè)計、單縣網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、單縣企業(yè)網(wǎng)站模板建站服務(wù),十年單縣做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

def time_me(fn):

def _wrapper(*args, **kwargs):

start = time.clock()

fn(*args, **kwargs)

print "%s cost %s second"%(fn.__name__, time.clock() - start)

return _wrapper

#這個裝飾器可以在方便地統(tǒng)計函數(shù)運行的耗時。

#用來分析腳本的性能是最好不過了。

#這樣用:

@time_me

def test(x, y):

time.sleep(0.1)

@time_me

def test2(x):

time.sleep(0.2)

test(1, 2)

test2(2)

#輸出:

#test cost 0.1001529524 second

#test2 cost 0.199968431742 second

Python:

Python(英語發(fā)音:/?pa?θ?n/), 是一種面向?qū)ο?、解釋型計算機程序設(shè)計語言,由Guido van Rossum于1989年發(fā)明,第一個公開發(fā)行版發(fā)行于1991年。

Python是純粹的自由軟件, 源代碼和解釋器CPython遵循 GPL(GNU General Public License)協(xié)議[1] 。

Python語法簡潔清晰,特色之一是強制用空白符(white space)作為語句縮進。

Python具有豐富和強大的庫。它常被昵稱為膠水語言,能夠把用其他語言制作的各種模塊(尤其是C/C++)很輕松地聯(lián)結(jié)在一起。常見的一種應(yīng)用情形是,使用Python快速生成程序的原型(有時甚至是程序的最終界面),然后對其中有特別要求的部分,用更合適的語言改寫,比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫,而后封裝為Python可以調(diào)用的擴展類庫。需要注意的是在您使用擴展類庫時可能需要考慮平臺問題,某些可能不提供跨平臺的實現(xiàn)。

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

time.time輸出的是時間戳, 時間戳是從1970年1月1號0點0分0秒開始計時的,也就是就開始計時到現(xiàn)在經(jīng)過了多少秒,這個值是不會重復(fù)的。

用python+編寫一個程序,打印出執(zhí)行1+1運行100次的時間?

您好!您可以使用Python的time模塊來計算執(zhí)行1+1運行100次的時間。首先,您需要在您的程序中導(dǎo)入時間模塊。然后,您可以使用time.time()函數(shù)來獲取當(dāng)前時間,并在開始執(zhí)行運算之前調(diào)用它來獲取開始時間,在運算完成之后再調(diào)用它來獲取結(jié)束時間,然后將兩者相減來計算出總運行時間。下面是一個例子:

import time

# 記錄開始時間

start_time = time.time()

# 執(zhí)行1+1運算100次

for i in range(100):

1 + 1

# 記錄結(jié)束時間

end_time = time.time()

# 計算運行時間

run_time = end_time - start_time

# 打印運行時間

print("運行時間: ", run_time)

希望這些信息對您有幫助!

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

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

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

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)

輸出結(jié)果:共耗時: 0.65634秒

2. 使用timeit模塊

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

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

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

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

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

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

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

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

運行time實用工具:

輸出結(jié)果為:

Total?time running random_sort:?1.3931210041?seconds

real?1.49

user?1.40

sys?0.08

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

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

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

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

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

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

4. 使用cProfile模塊

5. 使用line_profiler模塊

6. 使用memory_profiler模塊

7. 使用guppy包

python 打印出函數(shù)執(zhí)行所用時間

使用timeit模塊,先介紹下:

timeit 模塊

timeit?模塊定義了接受兩個參數(shù)的?Timer?類。兩個參數(shù)都是字符串。 第一個參數(shù)是你要計時的語句或者函數(shù)。 傳遞給?Timer?的第二個參數(shù)是為第一個參數(shù)語句構(gòu)建環(huán)境的導(dǎo)入語句。 從內(nèi)部講,?timeit?構(gòu)建起一個獨立的虛擬環(huán)境, 手工地執(zhí)行建立語句,然后手工地編譯和執(zhí)行被計時語句。

一旦有了?Timer?對象,最簡單的事就是調(diào)用?timeit(),它接受一個參數(shù)為每個測試中調(diào)用被計時語句的次數(shù),默認為一百萬次;返回所耗費的秒數(shù)。

Timer?對象的另一個主要方法是?repeat(), 它接受兩個可選參數(shù)。 第一個參數(shù)是重復(fù)整個測試的次數(shù),第二個參數(shù)是每個測試中調(diào)用被計時語句的次數(shù)。 兩個參數(shù)都是可選的,它們的默認值分別是?3?和?1000000。?repeat()?方法返回以秒記錄的每個測試循環(huán)的耗時列表。Python?有一個方便的?min?函數(shù)可以把輸入的列表返回成最小值,如: min(t.repeat(3, 1000000))

你可以在命令行使用?timeit?模塊來測試一個已存在的?Python?程序,而不需要修改代碼。

再給你個例子,你就知道怎么做了。

#?-*-?coding:?utf-8?-*-

#!/bin/env?python

def?test1():

n=0

for?i?in?range(101):

n+=i

return?n

def?test2():

return?sum(range(101))

def?test3():

return?sum(x?for?x?in?range(101))

if?__name__=='__main__':

from?timeit?import?Timer

t1=Timer("test1()","from?__main__?import?test1")

t2=Timer("test2()","from?__main__?import?test2")

t3=Timer("test3()","from?__main__?import?test3")

print?t1.timeit(1000000)

print?t2.timeit(1000000)

print?t3.timeit(1000000)

print?t1.repeat(3,1000000)

print?t2.repeat(3,1000000)

print?t3.repeat(3,1000000)


名稱欄目:包含python計算函數(shù)用時的詞條
標題URL:http://weahome.cn/article/docjcss.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部