Python定时器-启动和停止功能?
Python计时器是否能够在同一个计时器对象中测量多个间隔?我有一个程序,可以在数千个对象上循环并执行多个操作,例如:下载、处理、存储、分析)。我希望能够在执行多次时测量每个单独步骤的累积时间,但是在执行其他操作的较大代码块中 有没有办法启动然后停止(暂停)计时器,然后重新启动它们来测量更多的时间?类似于下面的伪代码Python定时器-启动和停止功能?,python,performance,timer,timeit,Python,Performance,Timer,Timeit,Python计时器是否能够在同一个计时器对象中测量多个间隔?我有一个程序,可以在数千个对象上循环并执行多个操作,例如:下载、处理、存储、分析)。我希望能够在执行多次时测量每个单独步骤的累积时间,但是在执行其他操作的较大代码块中 有没有办法启动然后停止(暂停)计时器,然后重新启动它们来测量更多的时间?类似于下面的伪代码 import timeit download_timer = <create a timer> processing_timer = <create a time
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))
import timeit
下载计时器=
处理计时器=
对于\u项目的大\u列表\u中的项目\u id:
下载\u timer.start()
慢速响应=下载数据(项目id)
下载\u timer.pause()
正在处理\u timer.start()
munge_数据(响应缓慢)
正在处理\u timer.pause()
log.debug('累计下载时间:{}秒'。格式(下载时间已过))
log.debug('累计数据处理时间:{}秒'。格式(处理计时器已用))
我目前正在每个循环上创建一个新的计时器,然后我必须在多个变量中跟踪时间,我将每个增量添加到这些变量中。仔细阅读文档,这似乎是最好的选择,除了创建自己的类来实现这一点之外,但我希望有人知道一种更简单的方法 ?从一个一般开始时间计算不同的步骤是否有意义?如果您使用当前时间,并保存单独步骤使用的时间,您应该能够映射每个子进程使用的时间以及使用的总时间。我最后创建了两个小类来完成此操作。一种是单个时间间隔的分割时间。第二个是timers对象。它有一个dict,可以跟踪您想要创建的尽可能多的计时器。dict中的每个计时器只是一个拆分对象的列表。有几种方法可以总结分割时间,获得平均值,或查看单个分割时间。它在300k循环上运行正常,但创建的分割对象太多,无法很好地缩放。我添加了重新启动拆分并保留累积时间的功能,因此如果有大量迭代,您可以选择重新使用它??从一个一般开始时间计算不同的步骤有意义吗?如果您使用当前时间,并保存单独步骤使用的时间,您应该能够映射每个子进程使用的时间以及使用的总时间。我最后创建了两个小类来完成此操作。一种是单个时间间隔的分割时间。第二个是timers对象。它有一个dict,可以跟踪您想要创建的尽可能多的计时器。dict中的每个计时器只是一个拆分对象的列表。有几种方法可以总结分割时间,获得平均值,或查看单个分割时间。它在300k循环上运行正常,但创建的分割对象太多,无法很好地缩放。我添加了重新启动拆分并保留累积时间的功能,因此如果有大量迭代,您可以选择重新使用它。