mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			43 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
#!/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
 |