【发布时间】:2011-10-02 01:43:24
【问题描述】:
我是一个刚开始分析我的代码的初学者,我很困惑为什么 cProfile 给出的经过时间与使用 time.time() 给出的时间相差如此之大。
# Python 2.7.2
import cProfile
def f(n):
G = (i for i in xrange(n))
sum = 0
for i in G:
sum += i
num = 10**6
cProfile.run('f(num)')
这给了 1000004 次函数调用在 2.648 秒内
但是使用 time.time(),我得到 0.218000173569 秒
import time
x = time.time()
f(num)
print time.time() - x
根据我的阅读,我猜这可能是因为 cProfile 的开销。对于 cProfile 计时可能非常偏离的情况,或获得更准确计时的方法,是否有任何一般提示?
【问题讨论】:
标签: python profile benchmarking