python 统计程序耗时 | python 小知识
我们在做性能分析的时候,最常用的方法就是统计程序的耗时;通过分析耗时,来确定需要优化和改进的部分。
今天我们分享几个统计耗时的方法,希望对你有帮助。
1. time.time()
一种直接的方式就是利用时钟方式,统计程序前后的实时时间,然后计算耗时。
由上可知,time.time()
这种方式,需要变更函数内的逻辑,但是比较灵活,可以检测函数内更小代码块的耗时。也可以通过装饰器的方式来统计。
2. timeit
另一种方式是通过 python 的内置库 timeit。 timeit 中 timeit 函数提供了单个函数或者语句的耗时统计,例子如下:
由上可知,timeit 的好处是在函数外部测试耗时,不改变函数体内容。timeit 还提供运行的次数 number;timeit 库中还提供 repeat 函数,提供反复执行的。需要注意的是 timeit 函数中 setup 是函数测试的前置命令,一般为模块导入。
3. cProfile
另一个统计耗时的工具也是 python 的内置库 cProfile。cProfile 提供了详细的性能分析信息。
从上可知,ncalls 表示调用次数、tottime 为总耗时(不包括调用)、percall 为每次调用耗时、cumtime 为总耗时(包括调用)、percall 为每次调用耗时、filename:lineno(function)为函数信息。
4. 总结
今天分享了 3 种 python 中统计程序耗时的方法,总结如下:
time.time(): 最常用灵活的方式,便于发现函数中更小模块的耗时
timeit:在不改变函数内容的情况下方便统计函数耗时,所以尽可能拆分功能为可测试的函数模块
cProfile: 一个更全面的耗时统计工具
版权声明: 本文为 InfoQ 作者【AIWeker】的原创文章。
原文链接:【http://xie.infoq.cn/article/a3444c70a16a4574606e34702】。文章转载请联系作者。
评论