Пришлось реализовать замер времени выполнения кода и вспомнил один вариант на который когда-то натолкнулся. (К сожалению ссылку на оригинал потерял, но принцип очень простой).
Создаём класс с двумя переопределёнными методами:
И далее в коде используем следующим образом:
Очень хорошая статья поясняющая детали.
Если есть ещё какие-нибудь красивые методы был бы рад о них услышать.
Создаём класс с двумя переопределёнными методами:
import time class Profiler(object): def __enter__(self): self._startTime = time.time() def __exit__(self, type, value, traceback): print "Elapsed time: {:.3f} sec".format(time.time() - self._startTime)
И далее в коде используем следующим образом:
with Profiler() as p: // your code to be profiled hereСоответсвенно всё понятно из приведённого примера. При входе в конструкцию with объект создаётся, а при выходе гарантированно завершается. Даже при возникновении исключения.
Очень хорошая статья поясняющая детали.
Если есть ещё какие-нибудь красивые методы был бы рад о них услышать.