8次发布
新 0.2.6 | 2024年8月15日 |
---|---|
0.2.5 | 2024年8月14日 |
0.1.0 | 2024年8月13日 |
在缓存中排名77
每月806次下载
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比较)
依赖项
~2.5–8MB
~61K SLoC