gpt4 book ai didi

python - 为什么 Windows 会报告将随机行数写入具有与 osx 不同的 float-rounding 的文件所花费的时间?

转载 作者:可可西里 更新时间:2023-11-01 11:26:15 26 4
gpt4 key购买 nike

我有一个 python 脚本,它正在将 dict 的对象写入文件。在 Windows 10 上使用 2.7,写入持续时间被报告为毫秒数,后跟 .0000nnn 或 .9999nnnn。我正在像这样使用 python 的时间库:

import time
logline = ""

def writer(mydict):
records = 0
global logline
lstart_time = time.time()
for item in mydict:
some_open_file.write(item)
dur = time.time() - lstart_time
logline +=("\t{0:25}transformed {2} records in {1} ms; avg: {3:2.3f} mis per record.\n".format(
page['name'], (dur*1000), records, (dur/records)*1000000))

for documents in bigdict:
logline += some_dict['title']
for x in some_dict['records']:
writer(x)
print(logline)

windows

不过在 osx 2.7 中不会发生这种情况。 osx output

python 的 windows 实现如何处理与 osx 不同的时间 float ?两者都是 64 位的,都在 python 2.7 上,都有英特尔核心处理器,并且都有 ssds(尽管这无关紧要)。那么为什么 windows/python 处理 float 的方式不同呢?如何让窗口显示我在 macbook 上获得的更精确的数字?

一些观察:mac 的写入时间似乎也有更大的差异。虽然 Windows 似乎始终平均每次写入记录需要 5.7-6 微秒,但 Mac 的范围为 8-24 微秒。有点惊讶 3-4 岁的台式机在整体规范非常相似的情况下速度更快,但我猜这是因为台式机可能具有更大的 l3 缓存,尽管芯片更旧并且速度稍快。那是另一个论坛。

我使用“mic”是因为 μs 会抛出各种编码错误。立即表扬任何纠正该日志分配以在任何控制台中使用 μs 的人。

最佳答案

总是使用timeit.default_timer():

import timeit

lstart_time = timeit.default_timer()

dur = timeit.default_timer() - lstart_time

在 Windows 上 time.time() 非常粗糙,通常对计时没有用。 timeit.default_timer() 在后台为 Windows 和其他平台使用不同的函数。在 Python 2.7 中,这些是 Windows 下的 time.clock() 和 POSIX(Unix、Mac)平台的 time.time()。在 Windows 上,time.clock() 有更好的分辨率。不幸的是,在 Unix 系统上,time.clock() 具有不同的含义,它返回自程序启动以来的 CPU。

关于python - 为什么 Windows 会报告将随机行数写入具有与 osx 不同的 float-rounding 的文件所花费的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34465897/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com