compio-rs / compio-rs/compio

perf(executor): `ArrayQueue` is slow

Open
#852 11 comments 0 reactions 1 assignee Claimed by @George-Miao View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.