我有一个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
但在2.7版本的OSX中却没有。
osx output
python的windows实现如何处理与osx不同的时间浮动?两者都是64位的,都在Python2.7上,都有英特尔核心处理器,都有固态硬盘(尽管这不重要)。那么为什么windows/python处理浮动的方式不同呢?如何让windows显示我在macbook上得到的更精确的数字?
一些观察:
mac在写操作所需的时间上似乎也有较大的差异。虽然windows似乎总是平均每次写入记录花费5.7-6μs,mac则在8-24μs之间。
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和其他平台的引擎盖下使用不同的功能。在Python2.7中,这些是Windows下的time.clock()和POSIX(Unix,Mac)平台的time.time()。在windows上time.clock()有更好的分辨率。不幸的是,在unix系统上time.clock()有不同的含义,并返回自程序启动以来的cpu。

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

10-14 16:49
查看更多