Я программирую в python на окнах и хочу точно измерить время, необходимое для запуска функции. Я написал функцию "time_it", которая выполняет другую функцию, запускает ее и возвращает время, затраченное на выполнение.
def time_it(f, *args):
start = time.clock()
f(*args)
return (time.clock() - start)*1000
Я называю это 1000 раз и усредняет результат. (константа 1000 в конце - дать ответ в миллисекундах.)
Эта функция, похоже, работает, но я чувствую, что я делаю что-то неправильно, и что, делая это таким образом, я использую больше времени, чем функция фактически использует, когда она работает.
Есть ли более стандартный или приемлемый способ сделать это?
Когда я изменил свою тестовую функцию, чтобы вызвать печать, чтобы она заняла больше времени, моя функция time_it возвращает среднее значение в 2,5 мс, тогда как cProfile.run('f()') возвращается и в среднем составляет 7,0 мс. Я полагал, что моя функция будет переоценивать время, если что-нибудь, что здесь происходит?
Еще одно примечание: это относительное время функций по сравнению друг с другом, о котором я забочусь, а не о абсолютном времени, поскольку это, очевидно, будет меняться в зависимости от аппаратного обеспечения и других факторов.