mirror of
https://github.com/python/cpython.git
synced 2025-01-06 08:34:26 +08:00
b992a0e102
requires them. Disable executable bits and shebang lines in test and benchmark files in order to prevent using a random system python, and in source files of modules which don't provide command line interface. Fixed shebang line to use python3 executable in the unittestgui script.
43 lines
1.2 KiB
Python
Executable File
43 lines
1.2 KiB
Python
Executable 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 = sorted(d.keys())
|
|
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
|