async_std::sync::Mutex is too heavy
- Dominant language
- Rust
- Stars
- 4.1k
- Forks
- 339
- PR merge metrics
- No merged PRs in 30d
Description
I've noticed that async-std uses `std::sync::Mutex` in quite a few places. It's well known that parking_lot offers much better performance, and more noticeably space saving, compared to the std mutex, thus enabling very fine-grained locks.
The current `async_std::sync::Mutex` and other few places of async_std seems to be using `std::sync::Mutex`, which has quite a few allocations and is very heavy-weight. Is there any existing discussion about performance and code bloat impact of switching over to parking_lot?
There is also a probability that we can use ideas similar to parking_lot to create a very cheap and light-weight (i.e. only a few bytes, no extra allocation) async Mutex that optimises for non-contended cases.
Contributor guide
Assessment
This issue has not been assessed yet.