perf(executor): `ArrayQueue` is slow
Open
difficulty: hard
help wanted
package: executor
performance
- Dominant language
- Rust
- Stars
- 1.9k
- Forks
- 133
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 20
Description
`ArrayQueue` is used each time a task is scheduled:
- When scheduling locally, `ArrayQueue::pop` is called repeatedly to piggyback remote schedules
- When scheduling remotely, `ArrayQueue::push` is called
And `ArrayQueue::pop` is EXPENSIVE, really expensive: multiple atomic load and a SeqCst atomic fence when empty.
Contributor guide
Assessment
This issue has not been assessed yet.