编码过程中检测 python 执行时间的几种方式

众所周知,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)))

2,使用 timeit 模块提供的方法统计执行时间

  •  
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

 最后,日常编程思路的来源都是平时基础的累计.

上一篇:如何避免不适合缓冲区的stdin输入在Linux 64位Intel(x86-64)程序集中发送到shell


下一篇:FFmpeg移植