Add python-eventlet package to MOS 8.0 repository
[packages/trusty/python-eventlet.git] / python-eventlet / benchmarks / spawn_plot.py
1 #!/usr/bin/env python
2 '''
3     Compare spawn to spawn_n, among other things.
4
5     This script will generate a number of "properties" files for the
6     Hudson plot plugin
7 '''
8
9 import os
10 import eventlet
11 import benchmarks
12
13 DATA_DIR = 'plot_data'
14
15 if not os.path.exists(DATA_DIR):
16     os.makedirs(DATA_DIR)
17
18
19 def write_result(filename, best):
20     fd = open(os.path.join(DATA_DIR, filename), 'w')
21     fd.write('YVALUE=%s' % best)
22     fd.close()
23
24
25 def cleanup():
26     eventlet.sleep(0.2)
27
28 iters = 10000
29 best = benchmarks.measure_best(
30     5, iters,
31     'pass',
32     cleanup,
33     eventlet.sleep)
34
35 write_result('eventlet.sleep_main', best[eventlet.sleep])
36
37 gt = eventlet.spawn(
38     benchmarks.measure_best, 5, iters,
39     'pass',
40     cleanup,
41     eventlet.sleep)
42 best = gt.wait()
43 write_result('eventlet.sleep_gt', best[eventlet.sleep])
44
45
46 def dummy(i=None):
47     return i
48
49
50 def run_spawn():
51     eventlet.spawn(dummy, 1)
52
53
54 def run_spawn_n():
55     eventlet.spawn_n(dummy, 1)
56
57
58 def run_spawn_n_kw():
59     eventlet.spawn_n(dummy, i=1)
60
61
62 best = benchmarks.measure_best(
63     5, iters,
64     'pass',
65     cleanup,
66     run_spawn_n,
67     run_spawn,
68     run_spawn_n_kw)
69 write_result('eventlet.spawn', best[run_spawn])
70 write_result('eventlet.spawn_n', best[run_spawn_n])
71 write_result('eventlet.spawn_n_kw', best[run_spawn_n_kw])
72
73 pool = None
74
75
76 def setup():
77     global pool
78     pool = eventlet.GreenPool(iters)
79
80
81 def run_pool_spawn():
82     pool.spawn(dummy, 1)
83
84
85 def run_pool_spawn_n():
86     pool.spawn_n(dummy, 1)
87
88
89 def cleanup_pool():
90     pool.waitall()
91
92
93 best = benchmarks.measure_best(
94     3, iters,
95     setup,
96     cleanup_pool,
97     run_pool_spawn,
98     run_pool_spawn_n,
99 )
100 write_result('eventlet.GreenPool.spawn', best[run_pool_spawn])
101 write_result('eventlet.GreenPool.spawn_n', best[run_pool_spawn_n])