2017-10-06 60 views
1

通过在我的代码的开始和时间测量精度

print("%f seconds" % (time.time() - start_time)) 

在我的代码我一直在衡量我的剧本的演出结束贯彻线

start_time = time.time() 

(可坐小时运行)。我听说这可能不是最好的方法,因为它不准确。它有多准确,是否有更好的选择?

+1

在一个时间尺度的时间,任何一秒的精确度似乎无关紧要。你想要你的时间有多精确? – Evert

+0

不顾这个数字。我来推荐最好的方法。干杯 – Worm

+2

“最好的方法”有点主观。最好的方法可能花费20万美元,因此可能不是您钱包的最佳方法。另外,你想测量挂钟时间,CPU时间吗?请让你的问题更实际。 – Evert

回答

1

试试这个讲,timeit从标准库:

from timeit import default_timer as timer 
start_time = timer() 
end_time = timer()  
print(end_time - start_time)                                   
logger.info("Duration was {}".format(end_time - start_time)) 

为default_timer的文档的兴趣,真的应该在回答被引用:“定义默认的定时器,在特定平台的方式。在Windows上,time.clock()的粒度为微秒,但time.time()的粒度为1/60秒。在Unix上,time.clock()的粒度为1/100秒,time.time ()更精确,在任一平台上,default_timer()都会测量挂钟时间,而不是CPU时间,这意味着运行在同一台计算机上的其他进程可能会影响计时。

+1

你能指出为什么这是一个关于精度的更好的选择吗?谢谢 – Worm

+1

'default_timer'的文档很有意思,应该在答案中引用它:“定义一个默认的定时器,采用特定于平台的方式。在Windows中,time.clock()具有微秒粒度,但time.time ()的粒度是1/60秒,在Unix上,time.clock()的粒度是1/100秒,time.time()更精确。在任一平台上,default_timer()测量墙时钟时间,而不是CPU时间,这意味着运行在同一台计算机上的其他进程可能会影响时间。“ – Evert

+0

非常感谢。我会编辑你的答案并接受它。 – Worm

0

尝试USNG日期时间

from datetime import datetime 
startTime = datetime.now() 
#CODE 
print("Time taken:",datetime.now() - startTime) 
+1

你能指出为什么这是一个更好的选择关于准确性?谢谢 – Worm

+1

https://docs.python.org/3/library/datetime.html –