1 个不稳定版本
0.1.0 | 2020年7月24日 |
---|
#36 在 #rwlock
21KB
425 行
rw_lease
支持读取者排空的快速读写锁。基于单个(可参数化)原子 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