本文目录导读:

- 方法一:使用
time.time()(基础版) - 方法二:使用
time.perf_counter()(推荐,精度更高) - 方法三:使用
timeit模块(适合精确测试小段代码) - 方法四:使用装饰器(代码简洁,方便复用)
- 方法五:用
datetime模块(适合较长任务) - 实战对比建议
在Python中统计程序运行耗时,最常用的方法有多种,这里给你几个典型的案例:
使用 time.time()(基础版)
import time
# 记录开始时间
start_time = time.time()
# 这里是你要测试的代码
total = 0
for i in range(1000000):
total += i
# 记录结束时间
end_time = time.time()
# 计算耗时(单位:秒)
elapsed_time = end_time - start_time
print(f"程序运行耗时:{elapsed_time:.6f} 秒")
输出示例:
程序运行耗时:0.087654 秒
使用 time.perf_counter()(推荐,精度更高)
time.perf_counter() 适用于测量短时间间隔,精度比 time.time() 更高:
import time
start_time = time.perf_counter()
# 测试代码
for i in range(500000):
_ = i ** 2
end_time = time.perf_counter()
elapsed_time = end_time - start_time
print(f"程序运行耗时:{elapsed_time:.6f} 秒")
使用 timeit 模块(适合精确测试小段代码)
timeit 会避开垃圾回收等干扰,专门用于精确测量代码执行时间:
import timeit
# 定义要测试的代码(作为字符串)
code = """
total = 0
for i in range(1000000):
total += i
"""
# 执行 1 次,返回耗时(秒)
elapsed_time = timeit.timeit(code, number=1)
print(f"运行耗时:{elapsed_time:.6f} 秒")
多次执行取平均值:
elapsed_time = timeit.timeit(code, number=10) # 执行10次
print(f"平均耗时:{elapsed_time / 10:.6f} 秒")
使用装饰器(代码简洁,方便复用)
import time
from functools import wraps
def timer(func):
@wraps(func)
def wrapper(*args, **kwargs):
start_time = time.perf_counter()
result = func(*args, **kwargs)
end_time = time.perf_counter()
print(f"函数 {func.__name__} 运行耗时:{end_time - start_time:.6f} 秒")
return result
return wrapper
@timer
def my_function():
total = 0
for i in range(1000000):
total += i
return total
# 调用函数时会自动打印耗时
result = my_function()
用 datetime 模块(适合较长任务)
from datetime import datetime
start_time = datetime.now()
# 你的代码
total = 0
for i in range(10000000):
total += i
end_time = datetime.now()
elapsed_time = end_time - start_time
print(f"程序运行耗时:{elapsed_time}") # 显示为 时:分:秒.微秒
实战对比建议
| 方法 | 适用场景 | 精度 |
|---|---|---|
time.time() |
简单统计,误差可接受 | 秒级 |
time.perf_counter() |
精确测量短时间任务 | 纳秒级 |
timeit |
代码片段性能测试 | 最高 |
| 装饰器 | 多次测试不同函数 | 中等 |
datetime |
长时间运行的任务 | 毫秒级 |
推荐使用: 日常开发最常用 time.perf_counter(),它不受系统时间调整影响,精度也足够。
如果还有其他问题,欢迎继续问我!
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播