#cache #neural #replace #machine #lru #neural-network

ritemlcr

基于自适应机器学习的缓存跟踪/替换策略。源自ticki的tfs/mlcr。

1个不稳定版本

0.1.0 2021年3月26日

#39#neural

Download history 9/week @ 2024-03-29 2/week @ 2024-04-05

69 每月下载量

MIT/Apache

44KB
661 代码行

RiteMLCR: 来自TFS的MLCR

MLCR: 基于机器学习的缓存替换

MLCR通过训练神经网络来“猜测”缓存块再次被访问之前需要多长时间。换句话说,它提供了一个有资格的猜测,来近似没有时间机器的理想Bélády算法。

MLCR较慢,因为它需要训练一个神经网络,但在许多情况下,通过极大地减少缓存未命中次数,增加的精度可以带来回报。因此,它只应在缓存介质明显慢于训练网络时使用(例如硬盘或网络下载)。

使用方法

let mut cache = ritemlcr::Cache::new();

cache.insert(1);
cache.insert(2);
cache.insert(3);
cache.insert(4);
cache.insert(100);
cache.insert(200);

cache.touch(100);
cache.touch(100);
cache.touch(1);
cache.touch(2);
cache.touch(2);
cache.touch(2);

致谢

它是对crate mlcr 的分支,但代码已进行了一些调整和改进。

许可证

此库的许可证为以下之一

由您选择。

依赖项

~2MB
~35K SLoC