嗨,Python 专家们,我开始使用 cProfile 以便在我的程序中获得更详细的计时信息。然而,让我感到非常不安的是,有一个显着的开销。知道为什么 cProfile 报告了 7 秒而 time 模块在下面的代码中只报告了 2 秒吗?
# a simple function
def f(a, b):
c = a+b
# a simple loop
def loop():
for i in xrange(10000000):
f(1,2)
# timing using time module
# 2 seconds on my computer
from time import time
x = time()
loop()
y = time()
print 'Time taken %.3f s.' % (y-x)
# timing using cProfile
# 7 seconds on my computer
import cProfile
cProfile.runctx('loop()', globals(), locals())
最佳答案
因为它做了更多的工作? time
只是整个操作的时间,而 cProfile
在检测下运行它,因此它可以获得详细的分割。显然,分析并不意味着在生产中使用,因此 2.5 倍的开销似乎是一个很小的代价。
关于python - Python cProfile 中的严重开销?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3134843/