49 个版本 (稳定)
5.0.33 | 2023年11月11日 |
---|---|
5.0.29 | 2023年8月5日 |
5.0.27 | 2023年7月26日 |
5.0.12 | 2023年3月26日 |
0.0.13 | 2022年11月13日 |
#155 在 并发 中排名
1,002 每月下载量
在 10 个 Crates 中使用 10 个 (直接使用 2 个)
96KB
1.5K SLoC
concurrent-map
无锁线性化映射。
get
,insert
,cas
,remove
,iter
,range
,get_gt
,get_gte
,get_lt
,get_lte
,first
,last
,pop_first
,pop_last
- 基于经过实战考验的 sled 实现,完全无锁的节点拆分和合并。
concurrent-map
在某些方面可以看作是一个简化的内存中sled
,支持高级类型。 - 最初是为 sled 的下一代对象存储 marble 设计的。
ConcurrentMap
允许用户调整树的分支因子 (FANOUT
) 和底层内存回收粒度 (LOCAL_GC_BUFFER_SIZE
) 以实现期望的性能属性。默认值对于大多数用例已经相当不错,但如果您想为特定的负载挤出每一分性能,根据实际测量进行调整可能有益。请参阅 ConcurrentMap
文档以获取更多详细信息。
如果您想使用自定义键类型,您必须实现 Minimum
特性,以便在插入任何数据之前创建树的左侧。
这是一个有序数据结构,并支持对按字典序排序的值范围的非常高的吞吐量迭代。如果您正在寻找简单的点操作性能,您可能会在许多并发哈希表实现中找到更好的选择。为实际使用的功能付费 :)
依赖项
~0.4–5.5MB
~17K SLoC