#lock #atomic #rwlock #locking

rw_lease

支持读取者排空的快速读写锁。基于单个(可参数化)原子 usize。

1 个不稳定版本

0.1.0 2020年7月24日

#36#rwlock

MPL-2.0 许可证

21KB
425

rw_lease

License Package Documentation

支持读取者排空的快速读写锁。基于单个(可参数化)原子 usize。

说明

  • 占用高位的写入锁。
  • 设计用于低竞争、以读为主的工作负载。
  • 写入锁定需要等待读取者释放锁。

基准测试

存在基准测试,您可以且应该运行。以下是我 2015 年 macbook pro 上的 AtomicUsize(默认)的一些数据

基准测试 Mutex RwLock RWLease
创建 110 107 1
无竞争读取 330731 (1.4) 417664 (1.77) 235656 (1)
竞争读取 1140321 (1) 2367186 (2.08) 1488557 (1.31)

说明:测量值以纳秒为单位,括号内为缩短的运行时间。

我们没有花太多时间优化代码,可能还有一些胜利可以取得。

版权 (c) 2020 James Laver, rw_lease 贡献者。

此源代码形式受 Mozilla 公共许可证(v. 2.0)的条款约束。如果未与此文件一起分发 MPL 复制品,您可以在 http://mozilla.org/MPL/2.0/ 获得一个。

依赖项

~18KB