Я новичок, только начинающий профилировать мой код, и был озадачен, почему истекшее время, указанное в 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 может быть очень нестабильным, или о способах получения более точного времени?