一、使用Python內置模塊time
import time start_time = time.time() # 獲取程序開始時間 # 程序主體部分 for i in range(1000000): pass end_time = time.time() # 獲取程序結束時間 print("程序運行時間為:%f秒" % (end_time - start_time))
Python提供了內置的time模塊,其中time()函數可以返回當前的時間戳(距離1970年1月1日0時0分0秒的秒數),可以用它來計算程序的運行時間。程序開始時調用time()函數獲取開始時間,結束時再調用一次獲取結束時間,兩者的差值即為程序運行時間。
二、使用裝飾器計時
import time def time_calculator(func): def wrapper(*args, **kwargs): start_time = time.time() # 獲取程序開始時間 result = func(*args, **kwargs) # 執行函數 end_time = time.time() # 獲取程序結束時間 print("%s 運行時間為:%f秒" % (func.__name__, end_time - start_time)) return result return wrapper @time_calculator def foo(): for i in range(1000000): pass foo()
使用Python的裝飾器可以實現更加優雅的代碼,可以避免在每個需要計時的函數中都寫上計時的代碼。在裝飾器中,先記錄開始時間,然後執行被裝飾函數,最後再記錄結束時間,並計算出程序運行時間。
三、使用Python第三方模塊timeit
import timeit code = """ for i in range(1000000): pass """ print("程序運行時間為:%f秒" % timeit.timeit(stmt=code, number=1))
Python也提供了第三方模塊timeit,可以用來測試小段代碼的執行時間。timeit()函數接受兩個參數,第一個是要執行的代碼,第二個是執行幾次,默認為1。函數會自動多次執行代碼,並計算平均執行時間。
四、注意事項
計算程序運行時間時,應注意以下事項:
1. 計時應該放在程序的主體部分,避免計算啟動時間和結束時間的時間影響。
2. 實際運行時間可能受到系統負載、硬體配置等因素的影響,因此計算出的運行時間並不能完全反映程序的優化效果。
3. 當程序需要運行很長時間時,建議使用time模塊中的perf_counter()函數,它可以提供更高精度的時間戳。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/249901.html