日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python: 测量代码运行时间

發布時間:2024/1/1 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python: 测量代码运行时间 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

測量代碼運行所需時間主要有兩種方法,使用 time.time() ,這是通用的方法,或者使用 timeit.timeit() 測量小的代碼段。

1 time()

這是通用方法:

import timedef powers(limit):return [x**2 for x in range(limit)]start = time.time() powers(5000000) end = time.time()print(end-start) # 1.0257349014282227 (秒)

或者將測量時間的相關代碼放到一個高階函數 measure_runtime 中,接受函數作為參數,可以測量任意函數運行所需時間:

import timedef measure_runtime(func):time_start = time.time()func()time_end = time.time()print(time_end - time_start)def powers(limit):return [x**2 for x in range(limit)]measure_runtime(lambda: powers(5000000)) # 1.006134033203125 秒

2 timeit()

此函數用于測量小的代碼段運行所需時間:

此函數有5個參數:

timeit.timeit(stmt='pass', setup='pass', timer=<default timer>, number=1000000, globals=None) timeit.timeit(stmt='', setup='', timer=time.perf_counter, number=1000000, globals=None)

stmt 是待測代碼段,setup 作用類似于初始化代碼段中變量,在 stmt 之前執行,number 如果不設置,那么 stmt 默認執行1000000 即一百萬次,如果 stmt 執行一次需要 1 秒,一百萬秒是非常長的時間,所以 number 參數一般應該設置。
用法:

import timeit print(timeit.timeit("[x**2 for x in range(5000000)]", number=4)) print(timeit.timeit("list(map(lambda x: x**2, range(100)))", setup="", number=10000)) print(timeit.timeit(stmt='while x < 1000000: x += 1', setup='x = 0', number = 10000))

運行結果:

4.101922899999408 # number = 4, 測了4 次,共用了4 秒 0.23630119999870658 0.03228399999898102

timeit.timeit() 除以 number, 將得到 stmt 執行一次所需的平均時間

總結

以上是生活随笔為你收集整理的python: 测量代码运行时间的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。