返回首页
最新
我构建了 warp_cache,这是一个线程安全的 Python 缓存装饰器,基于 Rust 扩展(PyO3)。它被设计为 functools.lru_cache 的直接替代品。
主要特点:
- 使用 SIEVE 驱逐算法(NSDI'24)而非 LRU——抗扫描,实际工作负载下缓存未命中的次数减少了多达 21.6%
- 整个缓存查找在单个 Rust __call__ 中完成——没有 Python 包装器的开销
- 开箱即用的线程安全:在 GIL 下使用 GilCell,在自由线程的 Python(3.13+)下使用分片的 RwLock
- 通过 mmap 实现跨进程共享内存后端(跨进程每秒 9.7M 次操作)
- 单线程性能为每秒 16–23M 次操作,比 cachetools 快 25 倍,比在多线程负载下的 lru_cache + Lock 快 1.6 倍
从 lru_cache 迁移只需一行代码:
```python
-from functools import lru_cache
+from warp_cache import cache
-@lru_cache(maxsize=128)
+@cache(max_size=128)
```
基准测试和驱逐质量比较可以在代码库中找到。