在
time模块中,有两个计时功能:
time和
clock。
time如果您在乎的话,它会给您“隔离”时间。
但是,python文档说
clock应该将其用于基准测试。请注意,
clock在单独的系统中,其行为有所不同:
在MS Windows上,它使用Win32函数QueryPerformanceCounter(),“分辨率通常优于微秒”。它没有特殊含义,只是一个数字(它
clock
在您第一次在过程中调用时会开始计数)。#ms视窗t0 = time.clock()做点什么()t = time.clock()-t0#t是经过的墙壁秒数(浮点数)
在* nix上,
clock
报告CPU时间。现在,这是不同的,并且很可能是您想要的值,因为程序几乎从来不是唯一请求CPU时间的进程(即使您没有其他进程,内核也会不时地使用CPU时间)。因此,在基准测试代码时,该数字通常比墙时间(即time.time()-t0)小¹,它更有意义:#Linuxt0 = time.clock()做点什么()t = time.clock()-t0#t是经过的CPU秒数(浮点数)
除此之外,timeit模块还具有
Timer使用最佳功能进行基准测试的类。
¹除非线程受阻…
²Python≥3.3:有
time.perf_counter()和
time.process_time()。
perf_counter被
timeit模块使用。



