#string-interning #string #interning #intern #symbol #str

无需std string-interner

高效的字符串池,具有最小的内存占用和快速的底层字符串访问

24个版本 (14个破坏性版本)

0.17.0 2024年5月1日
0.15.0 2024年2月7日
0.14.0 2021年10月27日
0.12.2 2021年1月11日
0.3.3 2017年2月27日

数据结构 中排名 32

Download history 70344/week @ 2024-05-03 82304/week @ 2024-05-10 80437/week @ 2024-05-17 86488/week @ 2024-05-24 101826/week @ 2024-05-31 122493/week @ 2024-06-07 107893/week @ 2024-06-14 120623/week @ 2024-06-21 110575/week @ 2024-06-28 125436/week @ 2024-07-05 126189/week @ 2024-07-12 134823/week @ 2024-07-19 126848/week @ 2024-07-26 120929/week @ 2024-08-02 152754/week @ 2024-08-09 160408/week @ 2024-08-16

每月下载量 588,227
155 包(37个直接)中使用

MIT/Apache

66KB
1.5K SLoC

String Interner

持续集成 测试覆盖率 文档 Crates.io
travisCI codecov docs crates

一种高效缓存字符串的数据结构,具有最小的内存占用,并能够将内部字符串与唯一符号关联。这些符号允许对底层内部字符串内容进行常数时间比较和查找。此外,迭代内部字符串是缓存高效的。

贡献

测试

使用以下方法测试项目:

cargo test --release

内存分配测试

为了进一步测试不同字符串池后端的内存消耗和分配,请按以下方式测试项目:

cargo test --release --features test-allocations -- --test-threads 1
  • --features test-allocations 启用内存分配测试。
  • 需要 --test-thread 1 参数进行内存分配测试,否则它们会相互干扰,导致它们随机失败。
  • 使用 --nocapture 以接收对调试有用的详细输出。

性能分析 & 基准测试

使用以下方法对字符串池及其各种后端进行基准测试:

cargo bench

许可

许可协议为以下之一:

任选其一。

双许可: 徽章 徽章

贡献

除非您明确声明,否则您有意提交以供包含在作品中的任何贡献,根据Apache-2.0许可证定义,应以下列方式双许可,不附加任何额外条款或条件。

依赖

~1.1–1.6MB
~23K SLoC