Каждый раз, когда я хочу записать в журнал, сколько времени потребуется для запуска некоторого кода, я оборачиваю код следующим образом *
Я знаю, что такое% timeit, но я думаю, что здесь он неприменим, потому что я хочу регистрировать и потому, что я не хочу запускать его N раз, чтобы получить дисперсию или что-то в этом роде.
Я думал, что должен определить функцию
def timing ( <MYCODE> ):
logger.info('Running <MYCODE>' )
start_time = time.time()
<MYCODE>
logger.info("--- %s seconds ---" % (time.time() - start_time))
, но не уверен, что это хорошая идея. Во-первых, потому что похоже на проблему, которую многие люди уже встретили и решили лучше, чем мое 5-минутное решение, во-вторых, потому что мне нужно обрабатывать возврат этой функции ... что она возвращает? и как передать весь код, который я хочу запустить? Я очень запутался, похоже, кое-кто из декораторов уже написал для этого ...