最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

時(shí)間戳相減

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

獲取時(shí)間戳time.time()

import time

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

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

輸出:
4999999950000000
耗時(shí): 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("耗時(shí): {}秒".format(end_time - start_time))

裝飾器

裝飾器是一個(gè)裝飾函數(shù)的函數(shù),能夠在不改變函數(shù)源碼和函數(shù)調(diào)用方式的情況下給函數(shù)增加新的功能。很多時(shí)候統(tǒng)計(jì)函數(shù)的耗時(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('耗時(shí):{}秒'.format(e_time - s_time))
        return res
    return inner

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

test()

輸出:
耗時(shí):2.000781536102295秒

timeit模塊

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

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

#導(dǎo)入timeit.timeit
from timeit import timeit
#看x=1的執(zhí)行一次的時(shí)間(number可以省略,缺省為1000000)
t1 = timeit('x=1', number=1)
print(t1)
#一個(gè)列表生成器的執(zhí)行時(shí)間,執(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í)行時(shí)間

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é)果返回為一個(gè)列表。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(語(yǔ)言編寫的測(cè)試模塊)是一個(gè)標(biāo)準(zhǔn)庫(kù)內(nèi)建的性能分析工具,可以在標(biāo)準(zhǔn)輸出中看到每一個(gè)函數(shù)被調(diào)用的次數(shù)和運(yùn)行的時(shí)間,從而找到程序的性能瓶頸,從而有針對(duì)性的進(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ì)代碼耗時(shí)的幾種方法分享的詳細(xì)內(nèi)容,更多關(guān)于python 統(tǒng)計(jì)代碼耗時(shí)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python的jinja2模板深入淺出地解析

    python的jinja2模板深入淺出地解析

    Python模板,全稱為“Jinja2 Template”,是Python語(yǔ)言中的一種模板引擎。在web應(yīng)用中,模板一般用于生成頁(yè)面或其他輸出格式。Python的模板引擎為程序員提供了一種非常方便的方式來(lái)構(gòu)建動(dòng)態(tài)內(nèi)容,強(qiáng)制執(zhí)行代碼結(jié)構(gòu),并允許從數(shù)據(jù)中提取特定的信息。Jinja2在Python社區(qū)
    2023-06-06
  • Python一鍵生成核酸檢測(cè)日歷的操作代碼

    Python一鍵生成核酸檢測(cè)日歷的操作代碼

    這篇文章主要介紹了Python一鍵生成核酸檢測(cè)日歷,本文以深圳為例,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09
  • python制作小說(shuō)爬蟲實(shí)錄

    python制作小說(shuō)爬蟲實(shí)錄

    本文給大家介紹的是作者所寫的第一個(gè)爬蟲程序的全過(guò)程,從構(gòu)思到思路到程序的編寫,非常的細(xì)致,有需要的小伙伴可以參考下
    2017-08-08
  • Python Web框架Tornado運(yùn)行和部署

    Python Web框架Tornado運(yùn)行和部署

    這篇文章主要為大家詳細(xì)介紹了Python Web框架Tornado運(yùn)行和部署的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-04-04
  • 在Django中自定義filter并在template中的使用詳解

    在Django中自定義filter并在template中的使用詳解

    這篇文章主要介紹了在Django中自定義filter并在template中的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • python3中celery異步框架簡(jiǎn)單使用+守護(hù)進(jìn)程方式啟動(dòng)

    python3中celery異步框架簡(jiǎn)單使用+守護(hù)進(jìn)程方式啟動(dòng)

    這篇文章主要介紹了python3中celery異步框架簡(jiǎn)單使用+守護(hù)進(jìn)程方式啟動(dòng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 接口自動(dòng)化多層嵌套json數(shù)據(jù)處理代碼實(shí)例

    接口自動(dòng)化多層嵌套json數(shù)據(jù)處理代碼實(shí)例

    這篇文章主要介紹了接口自動(dòng)化多層嵌套json數(shù)據(jù)處理代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 利用Python將多張圖片合成視頻的實(shí)現(xiàn)

    利用Python將多張圖片合成視頻的實(shí)現(xiàn)

    這篇文章主要介紹了利用Python將多張圖片合成視頻的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • matplotlib繪制多子圖共享鼠標(biāo)光標(biāo)的方法示例

    matplotlib繪制多子圖共享鼠標(biāo)光標(biāo)的方法示例

    這篇文章主要介紹了matplotlib繪制多子圖共享鼠標(biāo)光標(biāo)的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python中如何替換字典中的值

    Python中如何替換字典中的值

    這篇文章主要介紹了Python中替換字典中的值,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03

最新評(píng)論

永福县| 老河口市| 离岛区| 长岛县| 湘阴县| 龙陵县| 囊谦县| 宝清县| 乌拉特前旗| 丰镇市| 大城县| 昔阳县| 阳曲县| 白河县| 达尔| 高台县| 尖扎县| 长治县| 英吉沙县| 昭苏县| 谢通门县| 聂拉木县| 武宣县| 全南县| 司法| 赫章县| 铅山县| 延庆县| 涟源市| 喀喇沁旗| 垫江县| 遂昌县| 瑞丽市| 长乐市| 崇信县| 奉贤区| 彭阳县| 泰顺县| 临高县| 油尖旺区| 龙南县|