连续两次执行10的阶乘
为什么连续执行两次10的阶乘所用的时间会差很多
为什么连续执行两次10的阶乘所用的时间会差很多
2018-03-29
import time
def performance(unit):
def per_decorator(f):
def wrapper(*args,**kw):
tb = time.time()
print tb
r = f(*args,**kw)
ta = time.time()
print ta
print unit
t = (ta - tb) if unit == 's' else (ta - tb) * 1000
print 'call %s() in %f %s' % (f.__name__,t,unit)
return r
return wrapper
return per_decorator
@performance('ms')
def finctional(n):
return reduce(lambda x , y : x * y,range(1,n + 1))
print finctional(10)
def performance_(unit):
def performance_decorator(f):
def fn(*args,**kw):
tb = time.time()
print tb
r = f(*args,**kw)
ta = time.time()
print ta
print unit
t = (ta - tb) * 1000 if unit == 'ms' else (ta -tb)
print 'call %s() in %f %s' % (f.__name__, t, unit)
return r
return fn
return performance_decorator
@performance_('ms')
def factorial_(n):
return reduce(lambda x,y: x*y, range(1, n+1))
print factorial_(10)
举报