另一个简单的python时间度量工具,它有更少的粗糙和更多的特性。

chronometer的Python项目详细描述


Continuous IntegrationTest CoverageDocumentationLatest VersionPython versionsMIT License

另一个简单的python时间度量工具。这个目标 实现是尽可能避免太多的粗糙。当前版本 实际代码长度为72行,不包括空白行、文档行和注释行。 计时器只提供测量墙上时钟时间的功能 在启动和停止计时器之间经过。

没别的了。一点也不差。

计时器试图保持精确到 利用单调定时器启动和停止定时器。根据 在Linux手册中,单调计时器会受到时间调整的影响,因此 它保持精确,但不会向后移动或跳跃。会的 逐步调整,只要系统运行就一直向前移动。

示例

简单:

importtimefromchronometerimportChronometerlong_running_task=lambda:time.sleep(3.)withChronometer()ast:long_running_task()# that will take a few seconds.print('Phew, that took me {:.3f} seconds!'.format(float(t)))

高级:

fromtimeimportsleepfromchronometerimportChronometercounter=0deflong_running_task_that_can_fail():globalcountercounter+=1sleep(2.)returncounter>3withChronometer()ast:whilenotlong_running_task_that_can_fail():print('Failed after {:.3f} seconds!'.format(t.reset()))print('Success after {:.3f} seconds!'.format(float(t)))

荒谬:

importasynciofromchronometerimportChronometerclassPingEchoServerProtocol(asyncio.StreamReaderProtocol):def__init__(self):super().__init__(asyncio.StreamReader(),self.client_connected)self.reader,self.writer=None,Noneself.latency_timer=Chronometer()defclient_connected(self,reader,writer):self.reader,self.writer=reader,writerasyncio.async(self.ping_loop())asyncio.async(self.handler())@asyncio.coroutinedefsend(self,data):self.writer.write(data.encode('utf-8')+b'\n')yield fromself.writer.drain()@asyncio.coroutinedefping_loop(self):yield fromasyncio.sleep(5.)whileTrue:ifself.latency_timer.stopped:self.latency_timer.start()yield fromself.send('PING (send me PONG!)')sleep_duration=max(2.,10.-self.latency_timer.elapsed)yield fromasyncio.sleep(sleep_duration)@asyncio.coroutinedefhandler(self):whileTrue:data=(yield fromself.reader.readline())ifdata[:4]==b'PONG'andself.latency_timer.started:yield fromself.send(('Latency: {:.3f}s'.format(self.latency_timer.stop())))l=asyncio.get_event_loop()@asyncio.coroutinedefstartup():s=(yield froml.create_server(lambda:PingEchoServerProtocol(),host='localhost',port=2727))print('Now telnet to localhost 2727')yield froms.wait_closed()l.run_until_complete(startup())

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么我不能从ObjectInputStream读取ArrayList?   linux如何设置java时区?   java是一种拥有系统的方法。出来在循环中打印不同的内容?   scala Apache Spark:在Java中有效地使用mapPartitions   java Maven对com的依赖性。白天利用率   java将多个数据映射到单个id的表的正式名称是什么?   java如何在Android应用程序中隐藏FulterWave API键   SeleniumWebDriverJava:如何使用行号和列号单击表中的特定单元格   java Springbatch将数据从写入程序或处理器传递到RestConroller   java在Android TextView中一次换行两行,并带有跨距   java如何使这个rxjava zip并行运行?   JAVAutil。登录中。记录器不尊重java。util。登录中。数量   java无法将参数发布到服务器   java Eclipse:在自定义透视图/视图的状态行上显示作业进度   java在调用findAll()时,找到了多个具有给定标识符的行,但如果我使用findById()遍历所有条目,则可以工作;   Java中的正则表达式问题   Java中的实例变量   java如何在安卓中逐字搜索   java如何计算百分比