Я программирую на python на окнах и хочу точно измерить время, необходимое для запуска функции. Я написал функцию «time_it», которая выполняет другую функцию, запускает ее и возвращает время, затраченное на выполнение.Точная синхронизация функций в python
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 мс. Я полагал, что моя функция будет переоценивать время, если что-нибудь, что здесь происходит?
Еще одно примечание: это относительное время функций по сравнению друг с другом, о котором я забочусь, а не о абсолютном времени, поскольку это, очевидно, будет меняться в зависимости от аппаратного обеспечения и других факторов.
Игнорировать меня - эта строка не является именем функции, это блок кода eval'd. Таким образом, вы можете использовать его для быстрого выбора времени. Это правильный ответ. А в других новостях - «нет» значительно быстрее, чем «! =» - но может иметь и другие последствия. –
И от этого касания - перед использованием «не» для чего-нибудь умного - помните об этом - http://stackoverflow.com/questions/1392433/python-why-is-hello-is-hello –