一、time模塊
Python的time模塊提供了一種測量代碼執行時間的簡單方法。time模塊包含了time()函數和clock()函數,這兩個函數都可以用來測量時間,但是它們的計時方式有所不同。
1. time()函數
import time
start = time.time()
# 模擬代碼執行
for i in range(100000):
pass
end = time.time()
print("time()函數測量結果:", end - start, "秒")
time()函數返回當前時間的時間戳,以浮點數表示,它的計時方式是從1970年1月1日0時0分0秒到現在的秒數。上面的代碼用for循環模擬了代碼的執行,可以得到執行所用的時間。
2. clock()函數
import time
start = time.clock()
# 模擬代碼執行
for i in range(100000):
pass
end = time.clock()
print("clock()函數測量結果:", end - start, "秒")
clock()函數返回程序運行的CPU時間,以浮點數表示。它的計時方式是從程序開始運行到調用該函數時的CPU時間。上面的代碼用for循環模擬了代碼的執行,可以得到執行所用的CPU時間。
二、timeit模塊
Python的timeit模塊提供了一種更高級的測量代碼執行時間的方法,包括了多次運行、平均值、標準差等更為強大的特性。
1. timeit()函數
import timeit
def test():
l = []
for i in range(100):
l.append(i)
t = timeit.timeit(stmt=test, number=10000)
print("timeit()函數測量結果:", t, "秒")
timeit()函數接收兩個參數:stmt和number。stmt是需要執行的代碼,可以是一個函數,也可以是一個字符串;number是執行stmt的次數。上面的代碼使用了timeit()函數來測試一個函數test()的運行時間,執行了10000次。timeit()函數會自動計算運行時間並返回運行時間的平均值。
2. Timer()類
import timeit
t = timeit.Timer('x = sum(range(1000))')
print("Timer()類測量結果:", t.timeit(number=10000), "秒")
Timer()類可以更為靈活地進行測試,它的構造函數可以接收一個字符串作為參數,字符串中的代碼會在計時之前被執行。上面的代碼創建了一個Timer對象,它會測試sum(range(1000))這段代碼的執行時間,並執行10000次。Timer對象也可以使用repeat()方法和timeit()方法來測試代碼的執行時間。
三、結語
Python的time模塊和timeit模塊為優化代碼執行時間提供了可靠的工具,根據不同的需求選擇不同的測量方法可以更加準確地測量代碼的執行時間。在編寫Python程序時,經常需要測量代碼的執行時間,選用合適的方法可以提高程序的性能。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/248765.html