我正在使用 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() 代替,具体取决于您的要求,以获得明确定义的行为。
添加回答
举报
0/150
提交
取消