#!/usr/bin/env python | |
""" clockres - calculates the resolution in seconds of a given timer. | |
Copyright (c) 2006, Marc-Andre Lemburg (mal@egenix.com). See the | |
documentation for further information on copyrights, or contact | |
the author. All Rights Reserved. | |
""" | |
import time | |
TEST_TIME = 1.0 | |
def clockres(timer): | |
d = {} | |
wallclock = time.time | |
start = wallclock() | |
stop = wallclock() + TEST_TIME | |
spin_loops = range(1000) | |
while 1: | |
now = wallclock() | |
if now >= stop: | |
break | |
for i in spin_loops: | |
d[timer()] = 1 | |
values = d.keys() | |
values.sort() | |
min_diff = TEST_TIME | |
for i in range(len(values) - 1): | |
diff = values[i+1] - values[i] | |
if diff < min_diff: | |
min_diff = diff | |
return min_diff | |
if __name__ == '__main__': | |
print 'Clock resolution of various timer implementations:' | |
print 'time.clock: %10.3fus' % (clockres(time.clock) * 1e6) | |
print 'time.time: %10.3fus' % (clockres(time.time) * 1e6) | |
try: | |
import systimes | |
print 'systimes.processtime: %10.3fus' % (clockres(systimes.processtime) * 1e6) | |
except ImportError: | |
pass |