来源:https://zhuanlan.zhihu.com/p/110005305
2.使用time.clock()
Python time clock() 函数以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用。
这个需要注意,在不同的系统上含义不同。在UNIX系统上,它返回的是"进程时间",它是用秒表示的浮点数(时间戳)。而在WINDOWS中,第一次调用,返回的是进程运行的实际时间。而第二次之后的调用是自第一次调用以后到现在的运行时间。(实际上是以WIN32上QueryPerformanceCounter()为基础,它比毫秒表示更为精确)
使用time.clock()更改后的程序查看一下:
import platform print(‘系统:‘,platform.system()) import time T1 = time.clock() #______假设下面是程序部分______ for i in range(100*100): pass T2 =time.clock() print(‘程序运行时间:%s毫秒‘ % ((T2 - T1)*1000)) # 程序运行时间:0.27023641716203606毫秒
3.使用time.perf_counter()
返回性能计数器的值(以微秒为单位,1秒=1000毫秒;1毫秒=1000微秒)作为浮点数,即具有最高可用分辨率的时钟,以测量短持续时间。它包括在睡眠期间和系统范围内流逝的时间。返回值的参考点未定义,因此只有连续调用结果之间的差异有效。
1秒 = 1000毫秒
1毫秒 = 1000微秒
1微秒 = 1000纳秒
1纳秒 = 1000皮秒
import platform print(‘系统:‘,platform.system()) import time T1 = time.perf_counter() #______假设下面是程序部分______ for i in range(100*100): pass T2 =time.perf_counter() print(‘程序运行时间:%s毫秒‘ % ((T2 - T1)*1000)) # 系统: Windows # 程序运行时间:0.3007180604248629毫秒
4.使用time.process_time()
返回当前进程的系统和用户CPU时间总和的值(以小数微秒为单位)作为浮点数。
通常time.process_time()也用在测试代码时间上,根据定义,它在整个过程中。返回值的参考点未定义,因此我们测试代码的时候需要调用两次,做差值。
注意process_time()不包括sleep()休眠时间期间经过的时间。
import platform print(‘系统:‘,platform.system()) import time T1 = time.process_time() #______假设下面是程序部分______ for i in range(100*100): pass T2 =time.process_time() print(‘程序运行时间:%s毫秒‘ % ((T2 - T1)*1000)) # 系统: Windows # 程序运行时间:0.0毫秒
写在最后:
建议PC上使用time.perf_counter() 来计算程序的运算时间,特别是测试算法在相邻两帧的处理时间,如果计算不准确,那可能会对算法的速度过于自信。
尤其在嵌入式的板子的开发中,性能的测试中,请仔细选择时间模块,比如某些嵌入式板子会封装专门的模块。