1. 24 Mar, 2018 4 commits
    • Jason Madden's avatar
      Add benchmark for plain greenlet pools. · c2e65dbc
      Jason Madden authored
      c2e65dbc
    • Jason Madden's avatar
      More optimizations and clarifying comments · c61eb0a3
      Jason Madden authored
      Compared to the previous commit:
      
      | Benchmark          | 36_threadpool_opt_PR | 36_threadpool_opt_cond10    |
      +--------------------+----------------------+-----------------------------+
      | imap_unordered_seq | 1.06 ms              | 1.02 ms: 1.04x faster (-4%) |
      | imap_unordered_par | 965 us               | 928 us: 1.04x faster (-4%)  |
      | imap_seq           | 1.08 ms              | 1.03 ms: 1.04x faster (-4%) |
      | map_seq            | 785 us               | 870 us: 1.11x slower (+11%) |
      | map_par            | 656 us               | 675 us: 1.03x slower (+3%)  |
      | apply              | 1.14 ms              | 1.12 ms: 1.02x faster (-2%) |
      c61eb0a3
    • Jason Madden's avatar
    • Jason Madden's avatar
      Optimizations for threadpool · 50a3130b
      Jason Madden authored
      Especially for map. None of the pools really need map to go through
      imap since they have to wait for everything anyway and they return
      results ordererd.
      
      | Benchmark          | 36_threadpool_master | 36_threadpool_opt_cond5     |
      |--------------------|----------------------|-----------------------------|
      | imap_unordered_seq | 1.15 ms              | 1.07 ms: 1.08x faster (-7%) |
      | imap_unordered_par | 1.02 ms              | 950 us: 1.08x faster (-7%)  |
      | imap_seq           | 1.17 ms              | 1.10 ms: 1.06x faster (-6%) |
      | imap_par           | 1.07 ms              | 1000 us: 1.07x faster (-7%) |
      | map_seq            | 1.16 ms              | 724 us: 1.60x faster (-37%) |
      | map_par            | 1.07 ms              | 646 us: 1.66x faster (-40%) |
      | apply              | 1.22 ms              | 1.14 ms: 1.07x faster (-7%) |
      | spawn              | 1.21 ms              | 1.13 ms: 1.07x faster (-7%) |
      50a3130b
  2. 23 Mar, 2018 3 commits
  3. 22 Mar, 2018 5 commits
  4. 21 Mar, 2018 4 commits
  5. 20 Mar, 2018 2 commits
  6. 19 Mar, 2018 3 commits
  7. 17 Mar, 2018 2 commits
    • Jason Madden's avatar
      Merge pull request #1142 from gevent/opt-greenlet · c7491589
      Jason Madden authored
      Introduce GEVENT_TRACK_GREENLET_TREE to disable greenlet tree features
      c7491589
    • Jason Madden's avatar
      Introduce GEVENT_TRACK_GREENLET_TREE to disable greenlet tree features · 25ff8d4a
      Jason Madden authored
      As a performance optimization for applications where spawning
      greenlets is critical. Plus some other optimizations to speed up
      spawning in the general case.
      
      CPython 3.6 with 1.2.2 vs these changes with tracking disabled:
      
      | Benchmark              | 36_122_bench_spawn | 36config_bench_spawn_tree_off |
      +------------------------+--------------------+-------------------------------+
      | eventlet spawn         | 12.6 us            | 12.2 us: 1.04x faster (-4%)   |
      | eventlet sleep         | 5.22 us            | 4.97 us: 1.05x faster (-5%)   |
      | gevent spawn           | 4.27 us            | 5.06 us: 1.19x slower (+19%)  |
      | gevent sleep           | 2.63 us            | 1.25 us: 2.11x faster (-53%)  |
      | geventpool spawn       | 9.00 us            | 8.31 us: 1.08x faster (-8%)   |
      | geventpool sleep       | 4.82 us            | 2.83 us: 1.70x faster (-41%)  |
      | geventraw spawn        | 2.51 us            | 2.81 us: 1.12x slower (+12%)  |
      | geventraw sleep        | 649 ns             | 679 ns: 1.05x slower (+5%)    |
      | geventpool join        | 3.47 us            | 1.42 us: 2.44x faster (-59%)  |
      | geventpool spawn kwarg | 11.0 us            | 8.95 us: 1.23x faster (-19%)  |
      | geventraw spawn kwarg  | 3.87 us            | 4.20 us: 1.08x slower (+8%)   |
      
      The differences compared to master are hard to quantify because the
      standard deviation ends up being more than 10% of the mean in many
      cases---and about a 10% improvement is what we typically see, so it
      goes back and forth.
      25ff8d4a
  8. 14 Mar, 2018 1 commit
  9. 09 Mar, 2018 2 commits
  10. 08 Mar, 2018 4 commits
  11. 07 Mar, 2018 3 commits
  12. 06 Mar, 2018 7 commits