File: bench_sleep0.py

package info (click to toggle)
python-gevent 20.9.0-2
  • links: PTS
  • area: main
  • in suites: bullseye
  • size: 21,000 kB
  • sloc: python: 158,152; ansic: 72,855; sh: 5,235; makefile: 1,574; javascript: 108; awk: 18
file content (48 lines) | stat: -rw-r--r-- 1,034 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
"""
Benchmarking sleep(0) performance.
"""
from __future__ import print_function

import perf

try:
    xrange
except NameError:
    xrange = range



N = 100


def test(loops, sleep, arg):
    t0 = perf.perf_counter()
    for __ in range(loops):
        for _ in xrange(N):
            sleep(arg)
    return perf.perf_counter() - t0

def bench_gevent(loops, arg):
    from gevent import sleep
    from gevent import setswitchinterval
    setswitchinterval(1000)
    return test(loops, sleep, arg)

def bench_eventlet(loops, arg):
    from eventlet import sleep
    return test(loops, sleep, arg)


def main():
    runner = perf.Runner()
    for arg in (0, -1, 0.00001, 0.001):
        runner.bench_time_func('gevent sleep(%s)' % (arg,),
                               bench_gevent, arg,
                               inner_loops=N)
        runner.bench_time_func('eventlet sleep(%s)' % (arg,),
                               bench_eventlet, arg,
                               inner_loops=N)


if __name__ == '__main__':
    main()