为什么在python2.7.10解释器中 求函数运行时间为0.000000 ms 代码如下

import time

def performance(unit):
    def performance_decorator(f):
        def wrapper(*args, **kw):
            t1 = time.time()
            r = f(*args, **kw)
            t2 = time.time()
            t = (t2 - t1)*1000 if unit == 'ms' else (t2 - t1)   
            print 'call %s() in %f %s' %(f.__name__, t, unit)
            return r
        return wrapper
    return performance_decorator

@performance('ms')
def factorial(n):
    return reduce(lambda x,y: x*y, range(1, n+1))

print factorial(10)

http://img.mukewang.com/56daceb300013f1e07930101.jpg

adamwwt
浏览 1733回答 1
1回答

清波

是这样的,现在的cpu 运算频率都是GHZ了,如果一个程序(函数)的内部都是运算,而较少,甚至没有IO(输入输出)的话,基本上用这种装饰器计算运行时间,就会超出默认显示位宽了。    建议最后调用时,参数在1100以上:print factorial(1100)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python