Python таймеры - запуск и остановка работы? - PullRequest
1 голос
/ 28 апреля 2020

Имеют ли таймеры Python возможность измерять несколько интервалов в одном и том же объекте таймера? У меня есть программа, которая зацикливает более тысячи объектов и выполняет несколько действий, например: загрузка, обработка, сохранение, анализ). Я хотел бы иметь возможность измерять совокупное время каждого отдельного шага, когда выполняется много раз, но в большем блоке кода, который делает другие вещи.

Есть ли способ запустить, а затем остановить (приостановить) таймеры, а затем перезапустить их, чтобы измерить еще немного времени? Что-то вроде следующего псевдокода?

import timeit
download_timer = <create a timer>
processing_timer = <create a timer>

for item_id in big_list_of_items:
    download_timer.start()
    slow_response = download_data(item_id)
    download_timer.pause()
    processing_timer.start()
    munge_data(slow_response)
    processing_timer.pause()

log.debug('Cumulative download time: {} sec'.format(download_timer.elapsed))
log.debug('Cumulative data processing time: {} sec'.format(processing_timer.elapsed))

В настоящее время я создаю новый таймер для каждого l oop, а затем мне нужно отслеживать время в нескольких переменных, к которым я добавляю каждое приращение. Просматривая документы, похоже, что это лучший вариант, если не считать создания собственного класса для этого, но я надеялся, что кто-то знает более простой способ.

...