spawn.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. """Compare spawn to spawn_n"""
  2. from __future__ import print_function
  3. import eventlet
  4. import benchmarks
  5. def cleanup():
  6. eventlet.sleep(0.2)
  7. iters = 10000
  8. best = benchmarks.measure_best(
  9. 5, iters,
  10. 'pass',
  11. cleanup,
  12. eventlet.sleep)
  13. print("eventlet.sleep (main)", best[eventlet.sleep])
  14. gt = eventlet.spawn(
  15. benchmarks.measure_best, 5, iters,
  16. 'pass',
  17. cleanup,
  18. eventlet.sleep)
  19. best = gt.wait()
  20. print("eventlet.sleep (gt)", best[eventlet.sleep])
  21. def dummy(i=None):
  22. return i
  23. def run_spawn():
  24. eventlet.spawn(dummy, 1)
  25. def run_spawn_n():
  26. eventlet.spawn_n(dummy, 1)
  27. def run_spawn_n_kw():
  28. eventlet.spawn_n(dummy, i=1)
  29. best = benchmarks.measure_best(
  30. 5, iters,
  31. 'pass',
  32. cleanup,
  33. run_spawn_n,
  34. run_spawn,
  35. run_spawn_n_kw)
  36. print("eventlet.spawn", best[run_spawn])
  37. print("eventlet.spawn_n", best[run_spawn_n])
  38. print("eventlet.spawn_n(**kw)", best[run_spawn_n_kw])
  39. print("%% %0.1f" % ((best[run_spawn] - best[run_spawn_n]) / best[run_spawn_n] * 100))
  40. pool = None
  41. def setup():
  42. global pool
  43. pool = eventlet.GreenPool(iters)
  44. def run_pool_spawn():
  45. pool.spawn(dummy, 1)
  46. def run_pool_spawn_n():
  47. pool.spawn_n(dummy, 1)
  48. def cleanup_pool():
  49. pool.waitall()
  50. best = benchmarks.measure_best(
  51. 3, iters,
  52. setup,
  53. cleanup_pool,
  54. run_pool_spawn,
  55. run_pool_spawn_n,
  56. )
  57. print("eventlet.GreenPool.spawn", best[run_pool_spawn])
  58. print("eventlet.GreenPool.spawn_n", best[run_pool_spawn_n])
  59. print("%% %0.1f" % ((best[run_pool_spawn] - best[run_pool_spawn_n]) / best[run_pool_spawn_n] * 100))