• Jason Madden's avatar
    Compile the hub operations that use Waiters with Cython · 92b1a6b6
    Jason Madden authored
    Since we've come this far, might as well keep taking advantage of the
    effort...
    
    There are substantial improvements on the micro benchmarks for things
    that wait and switch:
    
    | Benchmark           | 27_hub_master2 | 27_hub_cython5               |
    |---------------------|----------------|------------------------------|
    | multiple wait ready | 1.96 us        | 1.10 us: 1.77x faster (-44%) |
    | wait ready          | 1.47 us        | 897 ns: 1.64x faster (-39%)  |
    | cancel wait         | 2.93 us        | 1.81 us: 1.61x faster (-38%) |
    | switch              | 2.33 us        | 1.94 us: 1.20x faster (-17%) |
    
    | Benchmark           | 36_hub_master2 | 36_hub_cython6 |
    |---------------------|----------------|------------------------------|
    | multiple wait ready | 1.28 us        | 820 ns: 1.56x faster (-36%)  |
    | wait ready          | 939 ns         | 722 ns: 1.30x faster (-23%)  |
    | cancel wait         | 1.76 us        | 1.37 us: 1.29x faster (-23%) |
    | switch              | 1.60 us        | 1.35 us: 1.18x faster (-16%) |
    92b1a6b6
bench_hub.py 2.48 KB