compio-rs/compio

perf(executor): `ArrayQueue` is slow

Open

#852 opened on Apr 9, 2026

View on GitHub
 (11 comments) (0 reactions) (1 assignee)Rust (120 forks)github user discovery
help wantedpackage: executorperformance

Repository metrics

Stars
 (1,732 stars)
PR merge metrics
 (Avg merge 2d 3h) (14 merged PRs in 30d)

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