windows中的Python脚本在测量点之间不使用时间间隔
我创建了一个使用套接字传输文件(客户端/服务器)的小程序。在发送函数中,我测量了执行某些任务所需的时间,以估计传输的平均速度windows中的Python脚本在测量点之间不使用时间间隔,python,windows,time,file-io,Python,Windows,Time,File Io,我创建了一个使用套接字传输文件(客户端/服务器)的小程序。在发送函数中,我测量了执行某些任务所需的时间,以估计传输的平均速度 while (l): start_time = time.time() self.__sendData(l) acc += len(l) self.__setProgress(acc) l = f.read(1024) elapsed_time = time.time() - start_time print("lo
while (l):
start_time = time.time()
self.__sendData(l)
acc += len(l)
self.__setProgress(acc)
l = f.read(1024)
elapsed_time = time.time() - start_time
print("longitud: " + str(len(l)))
print("total: " + str(elapsed_time))
self.__setSpeed(len(l), elapsed_time)
在这里,您可以看到我有一个acc
(umulator)var来计算传输的总进度。我读取文件的下一个1024
字节,并计算执行这些操作所需的时间。我的函数\uu setSpeed
仅使用最新的50
瞬时速度计算平均速度
这个在Linux中运行良好,完全没有问题。但是,在Windows中运行时,我发现以下输出:
正如您所看到的,很多时候传输和文件读取的时间
正好是零
。我不明白为什么会这样,因为:
readtime
变为0。嗯sendData
功能可能非常快,因为它的数量非常小。好吧,但真的是零在Windows中,
time.time
基于。我们可以通过时间获得该时钟的分辨率。获取时钟信息。对于它调用的系统时钟。默认分辨率为15.625毫秒:
>>> time.get_clock_info('time').resolution
0.015625
应该能解决你的问题。在Windows中,它基于。要获取此时钟的分辨率,get\u clock\u info
调用。通常为100纳秒:
>>> time.get_clock_info('perf_counter').resolution
1e-07