我正在尝试构建一个与时间差很小的程序,我需要一种非常准确的方法来了解语句花了多少时间。 当我使用time.time()时,即使有数百个字符,它也显示我需要0.0。 (我测量time.time()之前和之后然后减去)。 我检查了python是否将char或char字符串char与此代码进行比较:
time1 = time.time()
print s1 == s2
print (time.time() - time1)
time2 = time.time()
print s1 == s3
print time.time() - time2
(当s1,s2,s3是非常长的字符串时,s2与s1相同但最后一个字符不同,s3与s3相同,只是第一个字符不同) 但我处理的情况是一个大约10个字符的字符串,有时甚至更少,我需要知道将它与其他东西进行比较所需的时间。 有什么帮助吗?
编辑: time.clock()对我很有用 - 它比time.time()(在Windows上)更准确
答案 0 :(得分:1)
具有最高可用分辨率的时钟来测量短持续时间
timeit.default_timer()
在Python 3上使用它。在Python 2上,它在Windows上调用time.clock()
,在其他系统调用time.time()
。
time.clock()
和time.perf_counter()
都在Windows上使用QueryPerformanceCounter()
,因此您可以在Windows上的Python 2和3上使用timeit.default_timer()
。
time.perf_counter()
(via pymonotonic(NULL)
)在Linux上调用clock_gettime(CLOCK_HIGHRES)
,在OS X调用mach_absolute_time()
。您可以call clock_gettime()
using ctypes
on Python 2 too(或找到为您执行此操作的后端)。