1""" 2Benchmarking sleep(0) performance. 3""" 4from __future__ import print_function 5 6import perf 7 8try: 9 xrange 10except NameError: 11 xrange = range 12 13 14 15N = 100 16 17 18def test(loops, sleep, arg): 19 t0 = perf.perf_counter() 20 for __ in range(loops): 21 for _ in xrange(N): 22 sleep(arg) 23 return perf.perf_counter() - t0 24 25def bench_gevent(loops, arg): 26 from gevent import sleep 27 from gevent import setswitchinterval 28 setswitchinterval(1000) 29 return test(loops, sleep, arg) 30 31def bench_eventlet(loops, arg): 32 from eventlet import sleep 33 return test(loops, sleep, arg) 34 35 36def main(): 37 runner = perf.Runner() 38 for arg in (0, -1, 0.00001, 0.001): 39 runner.bench_time_func('gevent sleep(%s)' % (arg,), 40 bench_gevent, arg, 41 inner_loops=N) 42 runner.bench_time_func('eventlet sleep(%s)' % (arg,), 43 bench_eventlet, arg, 44 inner_loops=N) 45 46 47if __name__ == '__main__': 48 main() 49