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并发 中排名

Download history 72/week @ 2024-04-22 75/week @ 2024-04-29 51/week @ 2024-05-06 49/week @ 2024-05-13 62/week @ 2024-05-20 169/week @ 2024-05-27 106/week @ 2024-06-03 68/week @ 2024-06-10 86/week @ 2024-06-17 97/week @ 2024-06-24 44/week @ 2024-07-01 94/week @ 2024-07-08 83/week @ 2024-07-15 665/week @ 2024-07-22 100/week @ 2024-07-29 150/week @ 2024-08-05

1,002 每月下载量
10 Crates 中使用 10 个 (直接使用 2 个)

MIT/Apache

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