为了账号安全,请及时绑定邮箱和手机立即绑定

用于测量代码运行时的时间和日期时间模块之间的差异

用于测量代码运行时的时间和日期时间模块之间的差异

Helenr 2021-10-26 16:11:22
我正在使用 time 模块测量函数的响应时间。时间模块应该将秒数输出为浮点数,所以我保存了一个开始时间值 (time.clock()) 并在最后读取另一个读数,并将差异用作运行时。在观察结果时,我们注意到运行时间似乎很长——例如,似乎需要不到 2 秒的时间,打印为 3-and-change。基于感知到的问题,我决定使用 datetime 模块仔细检查结果。并排打印两个显示时间模块值几乎是日期时间值的两倍。有谁知道为什么会这样?这是我的代码:for datum in data:    start = datetime.datetime.now()    startts = time.clock()    check = test_func(datum)    runtime = datetime.datetime.now() - start    runts = time.clock() - startts    print(check, "Time required:", runtime, "or", runts)我的一些结果:XYZ Time required: 0:00:01.985303 or 3.7836029999999994XYZ Time required: 0:00:01.476289 or 3.3465039999999817XYZ Time required: 0:00:01.454407 or 3.7140109999999993XYZ Time required: 0:00:01.550416 or 3.860824000000008我假设之前会注意到此类问题,而我只是在我的实现中缺少一些基本的东西。有人能指点我吗?
查看完整描述

2 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

看起来 time.clock() 自 3.3 版以来已被弃用

也许会有所帮助?

time.clock() 在 Unix 上,将当前处理器时间返回为以秒表示的浮点数。精度,实际上是“处理器时间”含义的定义,取决于同名 C 函数的精度。

在 Windows 上,此函数根据 Win32 函数 QueryPerformanceCounter() 以浮点数形式返回自第一次调用此函数以来经过的挂钟秒数。分辨率通常优于一微秒。

3.3 版后已弃用:此函数的行为取决于平台:使用 perf_counter() 或 process_time() 代替,具体取决于您的要求,以获得明确定义的行为。


查看完整回答
反对 回复 2021-10-26
  • 2 回答
  • 0 关注
  • 194 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信