8次发布

0.2.6 2024年8月15日
0.2.5 2024年8月14日
0.1.0 2024年8月13日

缓存中排名77

Download history 806/week @ 2024-08-10

每月806次下载

MIT许可

69KB
1.5K SLoC

LightCache

建立在Hashbrowns RawTables之上 | LightCache的简单设计使得实现大多数驱逐策略变得轻而易举。

描述

LightCache的设计以Rust的异步模式为核心:对LightCache(或底层映射)的任何读取和写入都是非阻塞的。同时提供了一个简单的接口来与之交互 | LightCache的速度与其他许多流行的缓存库一样快,甚至更快。

从根本上说 | 这是因为我们限制了 V: Clone | 因此即使在线程间存在竞争 | 它们之间也只需要几个原子操作。相反,较大的 V 应在插入缓存之前用 Arc 包装。

LightCache目前提供了一些预定义的驱逐策略和创建新策略的一些辅助工具。

基准测试

根据mokabench,没有策略的基线缓存是可用的最快的。

S3 (MokaBench)

在Apple MBP 2021 Pro M1上执行

缓存 最大容量 客户端 插入 读取 命中率 持续时间秒
Mini Moka Unsync Cache 100000 1 14695344 16407702 10.436 3.887
HashLink (LRU w/ Mutex) 100000 1 16025830 16407702 2.327 2.965
HashLink (LRU w/ Mutex) 100000 3 16025819 16407702 2.327 4.897
HashLink (LRU w/ Mutex) 100000 6 16025888 16407702 2.327 5.980
QuickCache Sync Cache 100000 1 14300847 16407702 12.841 4.835
QuickCache Sync Cache 100000 3 14301577 16407702 12.836 2.190
QuickCache Sync Cache 100000 6 14301078 16407702 12.839 2.441
LightCache Sync Cache 100000 1 1689882 16407702 89.701 2.378
LightCache Sync Cache 100000 3 1689882 16407702 89.701 0.904
LightCache Sync Cache 100000 6 1689884 16407702 89.701 0.584
LightCache Sync Cache LRU 100000 1 16025830 16407702 2.327 5.026
LightCache Sync Cache LRU 100000 3 16025891 16407702 2.327 6.931
LightCache Sync Cache LRU 100000 6 16025813 16407702 2.327 8.978

conc-map-bench结果(dashmap与内部LightMap比较)

https://github.com/nhtyy/conc-map-bench

依赖项

~2.5–8MB
~61K SLoC