域名如何注册?深圳快速seo排名优化
在 Python
中计算代码段的运行时间,可以使用 time
模块或 timeit
模块。以下是几种常见方法,按场景分类:
方法 1:基础计时(time.time())
适用于简单场景,计算代码块的 实际运行时间(挂钟时间)。
import time# 记录开始时间
start_time = time.time()# 你的代码段
for _ in range(1000000):pass # 这里替换为你的代码# 记录结束时间
end_time = time.time()# 计算运行时间(秒)
elapsed_time = end_time - start_timeprint(f"开始时间: {time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(start_time))}")
print(f"结束时间: {time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(end_time))}")
print(f"运行时长: {elapsed_time:.6f} 秒")
方法 2:高精度计时(time.perf_counter())
适合需要 高精度计时 的场景(如性能测试),避免系统时间调整的影响。
import timestart = time.perf_counter() # 高精度计时起点# 你的代码段
sum(range(1000000))end = time.perf_counter()
print(f"运行时长: {end - start:.8f} 秒") # 显示更精确的小数位
方法 3:代码块计时(上下文管理器)
封装为 可重用的计时工具,方便多次调用。
import time
from contextlib import contextmanager@contextmanager
def timer():start = time.perf_counter()yield # 在此处插入被计时代码end = time.perf_counter()print(f"运行时长: {end - start:.6f} 秒")# 使用示例
with timer():# 你的代码段result = [x**2 for x in range(10000)]
方法 4:函数计时装饰器
为函数添加计时功能,适合 快速测试函数执行时间。
import timedef time_it(func):def wrapper(*args, **kwargs):start = time.perf_counter()result = func(*args, **kwargs)end = time.perf_counter()print(f"函数 {func.__name__} 运行时长: {end - start:.6f} 秒")return resultreturn wrapper# 使用示例
@time_it
def my_function():total = 0for i in range(1000000):total += ireturn totalmy_function()
方法 5:使用 timeit 模块
适合 多次运行代码取平均时间,排除偶然误差。
import timeitcode_to_test = """
result = []
for i in range(1000):result.append(i**2)
"""# 默认执行次数为 10000 次,可自定义
time = timeit.timeit(stmt=code_to_test, number=100)
print(f"平均每次运行时间: {time / 100:.6f} 秒")
关键区别:
方法 特点 适用场景
time.time() 简单,但精度低(受系统时间影响) 粗略计时
time.perf_counter 高精度,计算实际耗时(包括睡眠时间) 性能测试
time.process_time 计算 CPU 时间(不包括睡眠) 分析 CPU 占用
timeit 多次运行取平均,排除干扰 基准测试和代码优化
高级技巧:格式化时间输出
elapsed = 123.456789
# 转换为小时、分钟、秒
hours = int(elapsed // 3600)
minutes = int((elapsed % 3600) // 60)
seconds = elapsed % 60
print(f"{hours}小时 {minutes}分钟 {seconds:.2f}秒")
输出:0小时 2分钟 3.46秒
根据需求选择最适合的方法即可!