欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python 統(tǒng)計(jì)代碼耗時的幾種方法分享

 更新時間:2021年04月02日 14:23:31   作者:吾非同  
本文實(shí)例講述了Python中統(tǒng)計(jì)代碼片段、函數(shù)運(yùn)行耗時的幾種方法,分享給大家,僅供參考。

時間戳相減

在代碼執(zhí)行前后各記錄一個時間點(diǎn),兩個時間戳相減即程序運(yùn)行耗時。

獲取時間戳time.time()

import time

start_time = time.time()
sum = 0
for i in range(100000000):
    sum += i
print(sum)

end_time = time.time()
print("耗時: {:.2f}秒".format(end_time - start_time))

輸出:
4999999950000000
耗時: 10.53秒

獲取當(dāng)前日期 datetime.datetime.now()

import datetime

start_time = datetime.datetime.now()
sum = 0
for i in range(100000000):
    sum += i
print(sum)

end_time = datetime.datetime.now()
print("耗時: {}秒".format(end_time - start_time))

裝飾器

裝飾器是一個裝飾函數(shù)的函數(shù),能夠在不改變函數(shù)源碼和函數(shù)調(diào)用方式的情況下給函數(shù)增加新的功能。很多時候統(tǒng)計(jì)函數(shù)的耗時,可以使用裝飾器實(shí)現(xiàn)。

import time

def get_time(f):

    def inner(*arg,**kwarg):
        s_time = time.time()
        res = f(*arg,**kwarg)
        e_time = time.time()
        print('耗時:{}秒'.format(e_time - s_time))
        return res
    return inner

@get_time
def test():
    time.sleep(2)  # 模擬運(yùn)行2s

test()

輸出:
耗時:2.000781536102295秒

timeit模塊

timeit 模塊提供了測量 Python 小段代碼執(zhí)行時間的方法,可以在命令行界面直接使用,也可以通過導(dǎo)入模塊進(jìn)行調(diào)用。

語句執(zhí)行 number 次的時間

#導(dǎo)入timeit.timeit
from timeit import timeit
#看x=1的執(zhí)行一次的時間(number可以省略,缺省為1000000)
t1 = timeit('x=1', number=1)
print(t1)
#一個列表生成器的執(zhí)行時間,執(zhí)行10000次:
t2 = timeit('[i for i in range(100) if i%2==0]', number=10000)
print(t2)

輸出:
4.0000000001150227e-07
0.04841430000000002

計(jì)算函數(shù)的執(zhí)行時間

from timeit import timeit
def func(a):
    sum = 0
    for i in range(a):
        sum += i
    return sum

# timeit(函數(shù)名_字符串,運(yùn)行環(huán)境_字符串,number=運(yùn)行次數(shù))
t = timeit('func(10000000)', 'from __main__ import func', number=1)
print(t)
輸出:
0.4887406

重復(fù)調(diào)用 timeit()

repeat() 方法相當(dāng)于持續(xù)多次調(diào)用 timeit() 方法并將結(jié)果返回為一個列表。repeat 參數(shù)指定重復(fù)的次數(shù),number 參數(shù)傳遞給 timeit() 方法的 number 參數(shù)。

import timeit
def func(a):
    sum = 0
    for i in range(a):
        sum += i
    return sum

# timeit(函數(shù)名_字符串,運(yùn)行環(huán)境_字符串,number=運(yùn)行次數(shù),repeat=重復(fù)次數(shù),repeat=5)
t = timeit.repeat('func(100000)', 'from __main__ import func', number=100, repeat=5)
print(t)

cProfile性能分析工具

cProfile(語言編寫的測試模塊)是一個標(biāo)準(zhǔn)庫內(nèi)建的性能分析工具,可以在標(biāo)準(zhǔn)輸出中看到每一個函數(shù)被調(diào)用的次數(shù)和運(yùn)行的時間,從而找到程序的性能瓶頸,從而有針對性的進(jìn)行性能優(yōu)化。

Python代碼性能分析之cProfile

import cProfile
def func(a):
    sum = 0
    for i in range(a):
        sum += i
    return sum
if __name__ == '__main__':
    cProfile.run("func(10000000)")

以上就是python 統(tǒng)計(jì)代碼耗時的幾種方法分享的詳細(xì)內(nèi)容,更多關(guān)于python 統(tǒng)計(jì)代碼耗時的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 基于Python編寫將文本轉(zhuǎn)換為語音的簡易應(yīng)用

    基于Python編寫將文本轉(zhuǎn)換為語音的簡易應(yīng)用

    這篇文章主要介紹了如何使用Python編寫一個簡單的應(yīng)用程序,將文本轉(zhuǎn)換為語音,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動手嘗試一下
    2023-08-08
  • python 錯誤處理 assert詳解

    python 錯誤處理 assert詳解

    這篇文章主要介紹了python 錯誤處理 assert詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • python四種出行路線規(guī)劃的實(shí)現(xiàn)

    python四種出行路線規(guī)劃的實(shí)現(xiàn)

    路徑規(guī)劃中包括步行、公交、駕車、騎行等不同方式,今天借助高德地圖web服務(wù)api,實(shí)現(xiàn)出行路線規(guī)劃。感興趣的可以了解下
    2021-06-06
  • Django數(shù)據(jù)結(jié)果集序列化并展示實(shí)現(xiàn)過程

    Django數(shù)據(jù)結(jié)果集序列化并展示實(shí)現(xiàn)過程

    這篇文章主要介紹了Django數(shù)據(jù)結(jié)果集序列化并展示實(shí)現(xiàn)過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 詳解Python如何使用Netmiko進(jìn)行文件傳輸

    詳解Python如何使用Netmiko進(jìn)行文件傳輸

    Netmiko是一個用于連接和管理各種網(wǎng)絡(luò)設(shè)備的Python庫,它是Paramiko的一個擴(kuò)展。本文就來講講如何利用Netmiko實(shí)現(xiàn)文件傳輸功能吧
    2023-05-05
  • python安裝pywifi全過程

    python安裝pywifi全過程

    這篇文章主要介紹了python安裝pywifi全過程,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Python+OpenCV 實(shí)現(xiàn)簡單的高斯濾波(推薦)

    Python+OpenCV 實(shí)現(xiàn)簡單的高斯濾波(推薦)

    這篇文章主要介紹了Python+OpenCV 實(shí)現(xiàn)簡單的高斯濾波,在文中需要注意的是,這里我沒有特判當(dāng)sigma = 0的時候的情況,具體實(shí)現(xiàn)過程跟隨小編一起看看吧
    2021-09-09
  • Python使用Pygame繪制時鐘

    Python使用Pygame繪制時鐘

    這篇文章主要為大家詳細(xì)介紹了Python使用Pygame繪制時鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • Python爬蟲之爬取二手房信息

    Python爬蟲之爬取二手房信息

    這篇文章主要介紹了Python爬蟲之爬取二手房信息,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python爬蟲的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • python入門游戲之井字棋實(shí)例代碼

    python入門游戲之井字棋實(shí)例代碼

    python井字棋游戲雖然看上去非常簡陋,但是卻非常值得學(xué)習(xí),下面這篇文章主要給大家介紹了關(guān)于python入門游戲之井字棋的相關(guān)資料,需要的朋友可以參考下
    2021-11-11

最新評論