计算程序的时间
计时模块:
#file mytimer.py
import time
reps=1000
repslist=range(reps)
def timer(func,*par,**kar):
start=time.clock()
for i in repslist:
ret=func(*par,**kar)
elapsed=time.clock()-start
return (elapsed,ret)
#file
import sys,mytimer
def mapcall():
return list(map(abs,repslist))
elapsed,result=mytimer.timer(mapcall())
print(‘运行时间:%.5f’%(elapsed))
windows平台使用time计时模块,但存在下面的缺点:
- 调用time.clock计时代码,该选项在window平台是最好的,但time.time在UNIX平台上能提供更好的解析。
- 调整重复的次数,需要修改模块级别的全局变量。
- 计数器必须通过运行测试函数很多次才能工作。
使用keyword-only参数,对timer进行改写:
improt time,sys
trace=lambda *args: None # or print
timefunc=time.clock if sys.platform==‘win32’ else time.time
def timer(func,*pars,_reps=1000,**kargs):
trace(func,pars,kargs,_rpes)
start=timefunc()
for i in range(_reps):
ret=func(*pars,**kargs)
eslapsed=timefunc()-start
return(elapsed,ret)