Иногда сталкиваешься с необходимостью сравнения скорости работы двух алгоритмов.
В таких случаях рекомендуется использовать стандартные средства cProfiler или магический метод %timeit в ipython.
Но если нет возможности это сделать, то на помощь придет следующий декоратор.
1 2 3 4 5 6 7 8 | def timeit(f): def wrap(*args): time_start = time.time() ret = f(*args) time_end = time.time() print('%s %0.3f ms' % (f.func_name, (time_end-time_start)*1000.0)) return ret return wrap |
Как видно из кода – это простой декоратор, который вызывается следующим образом
1 2 3 | @timeit def my_func(): #some code |
Где функция my_func – это та, время работы которой вы хотите измерить.
Не забудьте в блоке с импортами указать
import time
Для python 3й версии чтобы получить имя функции вместо метода f.func_name используйте f.__name__.
Поделиться: