/Tools/pybench/clockres.py
http://unladen-swallow.googlecode.com/ · Python · 43 lines · 31 code · 4 blank · 8 comment · 8 complexity · d7fb8dea70527c452411e317d62389ca MD5 · raw file
- #!/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