Open josharian opened 3 weeks ago
In triage, I don't think we have the bandwidth to look into this now, but patches welcome. :)
@josharian Do you know how we might benchmark this?
Something like BenchmarkSelectSync*
in package runtime. Maybe add some benchmarks with more cases.
This is a minor optimization opportunity. runtime.selectgo typically does a shuffle of a fairly small number of channels. https://lemire.me/blog/2024/08/17/faster-random-integer-generation-with-batching/ introduces an optimization for such shuffles. It might be worth incorporating the technique into selectgo. (math/rand/v2 is probably not possible due to backwards compat.)