亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python統計代碼耗時的方法有哪些

發布時間:2021-04-06 10:15:50 來源:億速云 閱讀:613 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關python統計代碼耗時的方法有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

時間戳相減

在代碼執行前后各記錄一個時間點,兩個時間戳相減即程序運行耗時。

獲取時間戳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秒

獲取當前日期 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))

裝飾器

裝飾器是一個裝飾函數的函數,能夠在不改變函數源碼和函數調用方式的情況下給函數增加新的功能。很多時候統計函數的耗時,可以使用裝飾器實現。

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)  # 模擬運行2s

test()

輸出:
耗時:2.000781536102295秒

timeit模塊

timeit 模塊提供了測量 Python 小段代碼執行時間的方法,可以在命令行界面直接使用,也可以通過導入模塊進行調用。

語句執行 number 次的時間

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

輸出:
4.0000000001150227e-07
0.04841430000000002

計算函數的執行時間

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

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

重復調用 timeit()

repeat() 方法相當于持續多次調用 timeit() 方法并將結果返回為一個列表。repeat 參數指定重復的次數,number 參數傳遞給 timeit() 方法的 number 參數。

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

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

cProfile性能分析工具

cProfile(語言編寫的測試模塊)是一個標準庫內建的性能分析工具,可以在標準輸出中看到每一個函數被調用的次數和運行的時間,從而找到程序的性能瓶頸,從而有針對性的進行性能優化。

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統計代碼耗時的方法有哪些

關于“python統計代碼耗時的方法有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丹寨县| 疏附县| 嘉荫县| 威宁| 麻栗坡县| 文山县| 利川市| 阿城市| 太谷县| 精河县| 万载县| 通榆县| 大安市| 额敏县| 萍乡市| 壤塘县| 镶黄旗| 全南县| 龙南县| 茶陵县| 麻城市| 望城县| 抚州市| 新余市| 黑河市| 庐江县| 岱山县| 榆社县| 伊宁县| 宁远县| 湖南省| 阳高县| 兴义市| 内乡县| 江城| 清镇市| 高淳县| 平阳县| 本溪| 营山县| 昌黎县|