众所周知,python 的执行效率一直是大家所关心的问题,这篇文章将着重介绍一下 python 在执行过程中的执行时间的几种方式。
1,编码过程中使用传统方式统计执行时间
import timedef dataQuery(): startTime = time.time() print("程序开始时时间 : " +str(startTime)) for i in range(20001): print("第 " + str(i) + " 次查找") if i > 20000: break endTime = time.time() print("程序结束时时间 : " +str(endTime)) print("运行时间 : " + str((endTime -startTime)))
import timeitdef dataAdd(): rec = 0 for i in range(20001): rec = rec + iif __name__ == '__main__': # Timer() 方法第一个参数表示需要执行的函数,第二个参数表示从哪个模块导入函数 res = timeit.Timer('dataAdd()',"from test_main import dataAdd") # res.timeit(1000) 表示执行 1000 次 print(res.timeit(1000))
3,使用 %timeit 方法统计 python 语句执行的时间,切记:这种方法一般使用在 Ipython 的交互式命令行中。
PS C:\Users\Administrator> ipythonPython 3.8.7 (tags/v3.8.7:6503f05, Dec 21 2020, 17:59:51) [MSC v.1928 64 bit (AMD64)]Type 'copyright', 'credits' or 'license' for more informationIPython 7.19.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: %timeit -n 1 print("success")successsuccesssuccesssuccesssuccesssuccesssuccess145 µs ± 75.8 µs per loop (mean ± std. dev. of 7 runs, 1 loop each)
%timeit 函数可以通过 -n 设置运行次数,而在每一次过程中又会执行 7 次。
4,使用 %time 方法统计语句执行时间,和 %timeit 不同的是:%timeit 可以执行多次,而 %time 执行一次。
PS C:\Users\Administrator> ipythonPython 3.8.7 (tags/v3.8.7:6503f05, Dec 21 2020, 17:59:51) [MSC v.1928 64 bit (AMD64)]Type 'copyright', 'credits' or 'license' for more informationIPython 7.19.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: %time print("success")successWall time: 0 ns
最后,日常编程思路的来源都是平时基础的累计.