主頁(yè) > 知識(shí)庫(kù) > python 統(tǒng)計(jì)代碼耗時(shí)的幾種方法分享

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

熱門標(biāo)簽:400電話申請(qǐng)服務(wù)商選什么 平頂山外呼系統(tǒng)免費(fèi) 江蘇客服外呼系統(tǒng)廠家 工廠智能電話機(jī)器人 西藏智能外呼系統(tǒng)五星服務(wù) 清遠(yuǎn)360地圖標(biāo)注方法 原裝電話機(jī)器人 在哪里辦理400電話號(hào)碼 千陽(yáng)自動(dòng)外呼系統(tǒng)

時(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)文章!

您可能感興趣的文章:
  • Python 統(tǒng)計(jì)數(shù)據(jù)集標(biāo)簽的類別及數(shù)目操作
  • Python統(tǒng)計(jì)可散列的對(duì)象之容器Counter詳解
  • Python 統(tǒng)計(jì)列表中重復(fù)元素的個(gè)數(shù)并返回其索引值的實(shí)現(xiàn)方法
  • Python實(shí)戰(zhàn)之單詞打卡統(tǒng)計(jì)
  • python之cur.fetchall與cur.fetchone提取數(shù)據(jù)并統(tǒng)計(jì)處理操作
  • python自動(dòng)統(tǒng)計(jì)zabbix系統(tǒng)監(jiān)控覆蓋率的示例代碼
  • Python統(tǒng)計(jì)列表元素出現(xiàn)次數(shù)的方法示例
  • python統(tǒng)計(jì)RGB圖片某像素的個(gè)數(shù)案例
  • Python jieba 中文分詞與詞頻統(tǒng)計(jì)的操作
  • 利用Python3實(shí)現(xiàn)統(tǒng)計(jì)大量單詞中各字母出現(xiàn)的次數(shù)和頻率的方法
  • 使用Python 統(tǒng)計(jì)文件夾內(nèi)所有pdf頁(yè)數(shù)的小工具
  • python 統(tǒng)計(jì)list中各個(gè)元素出現(xiàn)的次數(shù)的幾種方法
  • python調(diào)用百度AI接口實(shí)現(xiàn)人流量統(tǒng)計(jì)
  • Python代碼覆蓋率統(tǒng)計(jì)工具coverage.py用法詳解
  • python 爬蟲(chóng)基本使用——統(tǒng)計(jì)杭電oj題目正確率并排序
  • 利用python匯總統(tǒng)計(jì)多張Excel
  • python統(tǒng)計(jì)mysql數(shù)據(jù)量變化并調(diào)用接口告警的示例代碼
  • 用python實(shí)現(xiàn)監(jiān)控視頻人數(shù)統(tǒng)計(jì)

標(biāo)簽:安慶 日照 白城 隨州 錦州 天水 股票 西安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python 統(tǒng)計(jì)代碼耗時(shí)的幾種方法分享》,本文關(guān)鍵詞  python,統(tǒng)計(jì),代碼,耗時(shí),的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python 統(tǒng)計(jì)代碼耗時(shí)的幾種方法分享》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于python 統(tǒng)計(jì)代碼耗時(shí)的幾種方法分享的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章