Python 速度测试 - 时差 - 毫秒

新手上路,请多包涵

为了加速测试一段代码,在 Python 中比较 2 次的正确方法是什么?我试着阅读 API 文档。我不确定我是否理解 timedelta 的事情。

到目前为止我有这段代码:

 from datetime import datetime

tstart = datetime.now()
print t1

# code to speed test

tend = datetime.now()
print t2
# what am I missing?
# I'd like to print the time diff here

原文由 BuddyJoe 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 539
2 个回答

datetime.timedelta 只是两个日期时间之间的差异……所以它就像一段时间,以天/秒/微秒为单位

>>> import datetime
>>> a = datetime.datetime.now()
>>> b = datetime.datetime.now()
>>> c = b - a

>>> c
datetime.timedelta(0, 4, 316543)
>>> c.days
0
>>> c.seconds
4
>>> c.microseconds
316543

请注意 c.microseconds 仅返回 timedelta 的微秒部分!出于计时目的,始终使用 c.total_seconds()

您可以使用 datetime.timedelta 进行各种数学运算,例如:

 >>> c / 10
datetime.timedelta(0, 0, 431654)

不过,查看 CPU 时间而不是挂钟时间可能更有用……尽管这取决于操作系统……在类 Unix 系统下,请查看“时间”命令。

原文由 NickZoic 发布,翻译遵循 CC BY-SA 4.0 许可协议

从 Python 2.7 开始,就有了 timedelta.total_seconds() 方法。因此,要获得经过的毫秒数:

 >>> import datetime
>>> a = datetime.datetime.now()
>>> b = datetime.datetime.now()
>>> delta = b - a
>>> print delta
0:00:05.077263
>>> int(delta.total_seconds() * 1000) # milliseconds
5077

原文由 f.cipriani 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题