首页 > 解决方案 > Python timeit 计时器 - 启动和停止功能?

问题描述

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))

我目前正在每个循环上创建一个新计时器,然后我必须跟踪添加每个增量的多个变量中的时间。仔细阅读文档,看起来这是最好的选择,没有创建我自己的类来做到这一点,但我希望有人知道一种更简单的方法。

标签: pythonperformancetimertimeit

解决方案


推荐阅读