jimblandy / jimblandy/context-switch
Data for different CPU architectures
- Dominant language
- Rust
- Stars
- 756
- Forks
- 23
- PR merge metrics
- No merged PRs in 30d
Description
It seems that the results vary a lot on different CPU architectures.
Testing on a Ubuntu VM (kernel version `5.4.0-65-generic`) running on Apple M1 with the `thread-brigade` and `async-brigade` tests:
```
$ /bin/time ../target/release/async-brigade
500 tasks, 10000 iterations:
mean 572.666µs per iteration, stddev 10.912µs (1145.000ns per task per iter)
2.56user 3.26system 0:05.83elapsed 99%CPU (0avgtext+0avgdata 3964maxresident)k
0inputs+0outputs (0major+399minor)pagefaults 0swaps
```
```
$ /bin/time ../target/release/thread-brigade
500 tasks, 10000 iterations:
mean 7.104ms per iteration, stddev 226.822µs (14.208µs per task per iter)
7.09user 78.75system 1:11.91elapsed 119%CPU (0avgtext+0avgdata 8340maxresident)k
0inputs+0outputs (0major+1523minor)pagefaults 0swaps
```
So it's a 90% speedup, not a 30% one.
Pinning to a single CPU core brings the threaded version closer to async though:
```
$ taskset --cpu-list 1 /bin/time ../target/release/thread-brigade
500 tasks, 10000 iterations:
mean 660.847µs per iteration, stddev 13.810µs (1321.000ns per task per iter)
0.49user 6.28system 0:06.83elapsed 99%CPU (0avgtext+0avgdata 6100maxresident)k
0inputs+0outputs (0major+1544minor)pagefaults 0swaps
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.