Python测量代码运行时间的几种方法

宋时安
宋时安
发布时间:2026-10-13 | 4人浏览过
原创

本文介绍Python中测量代码运行时间的两种主要方法。首先详解内置timeit模块,包括Timer类的参数设置、timeit()与repeat()函数的用法及命令行使用技巧。其次展示如何通过自定义装饰器print_func_time封装计时逻辑,实现无侵入式的函数执行时间统计,并提供完整代码示例与控制台输出结果。

本文详细解析如何在Python中准确测量代码的运行耗时,通过具体示例展示操作方法,为开发者提供实用的性能评估参考。

使用timeit模块进行精确计时

Python社区常言“自带电池”,意指无需重复造轮子。对于性能计时,Python 3.2及以上版本内置了timeit模块,这是测量Python代码执行时间的标准且高效的工具。

timeit模块提供了核心功能支持。

该模块定义了一个Timer类,其初始化需要传入两个字符串参数。第一个参数代表需要计时的具体语句或函数代码;第二个参数则是为构建执行环境所需的导入语句。在内部实现上,timeit会创建一个独立的虚拟执行环境,手动执行建立语句,随后编译并执行被计时的目标语句,以确保计时的准确性。

获取Timer对象后,最直接的操作是调用timeit()方法。该方法接收一个参数,指定在每次测试中执行被计时语句的次数,默认值为100万次。方法执行完毕后,返回所消耗的总秒数。

Timer类还提供了repeat()方法,用于多次重复测试以获取更稳定的结果。它接受两个可选参数:第一个参数控制整个测试重复进行的次数,第二个参数控制每次测试中执行被计时语句的次数。若未指定,默认值分别为3次重复和100万次执行。repeat()返回一个列表,包含每次测试循环的耗时(秒)。结合Python内置的min()函数,可以方便地获取最小耗时,例如: min(t.repeat(3, 1000000))

除了代码调用,你还可以直接在命令行中使用timeit模块来测试现有的Python程序,这种方式无需修改源代码即可快速评估性能。

更多详细用法与参数说明,请参阅官方文档: http://docs.python.org/library/timeit.html

通过装饰器封装计时功能

1、程序代码


def print_func_time(function):
'''
计算程序运行时间
:param function:
:return:
'''

@wraps(function)
def func_time(*args, **kwargs):
t0 = time.clock()
result = function(*args, **kwargs)
t1 = time.clock()
print("Total running time: %s s" % (str(t1 - t0)))
return result

return func_time

2、使用print_func_time


@print_func_time
def test():
print(123)
test()

3、控制台输出程序运行时间


123
Total running time: 2.233830763170168e-05 s

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表