2015-07-20 167 views
1

我正在尝试构建一个程序,它必须处理非常短的时间差异,我需要一个非常准确的方法来知道语句花了多少时间。 当我使用time.time(),即使有数百个字符,它也会告诉我它花了0.0。 (我测量time.time()之前和之后,然后减去)。 我检查,看看是否蟒蛇被烧焦或比较串字符无法使用此代码:python中最精确的计时函数

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上)

+3

[timeit](https://docs.python.org/2/library/timeit.html)? – NightShadeQueen

+0

@NightShadeQueen我发现在Windows上,time.clock()比time.time()更好,它更精确),timeit.default_timer实际上也是这样工作,谢谢:) – pystudent

回答

1

更准确的你想time.perf_counter()

与时钟最高可用的分辨率测量时间短

timeit.default_timer()使用它的Python 3.在Python 2中,这对其他SYST呼吁time.clock()在Windows和time.time() EMS。

time.clock()time.perf_counter()都在Windows上使用QueryPerformanceCounter(),因此您可以在Windows上的Python 2和3上使用timeit.default_timer()

time.perf_counter() (via pymonotonic(NULL))电话clock_gettime(CLOCK_HIGHRES)在Linux和mach_absolute_time()在OS X上,你可以call clock_gettime() using ctypes on Python 2 too(或找到一个补丁包,这会为你)。