最直接的方法是使用time.time()获取脚本执行前后的时间戳,相减得到耗时,适合快速粗略计时;更精确的性能测试推荐使用timeit模块,它通过多次执行代码并取平均值,减少系统干扰,适合微基准测试和性能对比;为提升代码可读性,可用上下文管理器或装饰器封装计时逻辑;若需深入分析性能瓶颈,应使用cProfile等工具查看函数调用次数与耗时分布。

想知道Python脚本跑了多久?最直接的办法就是用
time
time()
timeit
在Python里给代码计时,我个人常用的就是两种路子。
一种是time.time()
import time
start_time = time.time()
# 这里放你的Python代码,比如一个耗时操作
for _ in range(1000000):
pass
end_time = time.time()
print(f"脚本执行耗时: {end_time - start_time:.4f} 秒")这种方式特别适合快速粗略地看看一个完整脚本跑了多久,或者某个大块代码的执行时间。它有个好处就是上手快,几乎没啥学习成本。
立即学习“Python免费学习笔记(深入)”;
另一种,也是我更推荐的,特别是当你需要精确比较不同代码片段的性能时,是timeit
比如,你想比较列表推导和循环哪个快:
import timeit
# 定义要测试的代码
code_list_comp = "[i for i in range(1000)]"
code_loop = """
my_list = []
for i in range(1000):
my_list.append(i)
"""
# 使用timeit.timeit()进行测试
# number参数指定代码执行的次数
# setup参数用于设置代码运行前的环境
time_list_comp = timeit.timeit(code_list_comp, number=10000)
time_loop = timeit.timeit(code_loop, number=10000)
print(f"列表推导耗时: {time_list_comp:.6f} 秒")
print(f"普通循环耗时: {time_loop:.6f} 秒")timeit
time.time()
说实话,
time.time()
尤其是在做性能优化时,如果只跑一次,结果很可能带有偶然性。我有时候发现,同一段代码,我跑两次,结果可能就差个几毫秒甚至几十毫秒。这在微基准测试里可就是天壤之别了。
timeit
把计时功能集成到脚本里,不只是简单地加几行
time.time()
一种很常见也很优雅的方式是使用上下文管理器(Context Manager)。你可以定义一个类,实现
__enter__
__exit__
with
import time
class Timer:
def __enter__(self):
self.start_time = time.time()
return self
def __exit__(self, exc_type, exc_val, exc_tb):
self.end_time = time.time()
self.duration = self.end_time - self.start_time
print(f"代码块执行耗时: {self.duration:.4f} 秒")
# 使用方法
with Timer():
# 这里放你的代码
sum(range(10000000))
print("脚本其他部分继续执行...")这种方法让计时逻辑和业务逻辑分离,代码看起来更干净。
另一种是装饰器(Decorator)。如果你有很多函数需要计时,给每个函数都手动加
start_time
end_time
import time
def time_it(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"函数 '{func.__name__}' 执行耗时: {end_time - start_time:.4f} 秒")
return result
return wrapper
@time_it
def my_complex_function(n):
total = 0
for i in range(n):
total += i * i
return total
my_complex_function(5000000)这样一来,你只需要在函数定义前加一个
@time_it
单纯知道脚本跑了多久,很多时候还不够。如果脚本慢,你得知道它慢在哪儿了。这时候,就需要更专业的性能分析工具了。
Python标准库里就有个非常强大的工具叫做cProfile
profile
cProfile
使用起来也很简单,通常是这样:
import cProfile
import time
def func_a():
sum(range(1000000))
def func_b():
time.sleep(0.1) # 模拟I/O或耗时操作
[i*i for i in range(500000)]
def main_script():
func_a()
func_b()
func_a()
cProfile.run('main_script()')运行后,你会看到一大堆输出,里面会有
ncalls
tottime
percall
tottime
cumtime
除了
cProfile
memory_profiler
line_profiler
以上就是运行Python脚本怎样查看脚本的执行时间 运行Python脚本的执行计时实用方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号