ARC(Adaptive Replacement Cache): 自适应缓存替换算法,它结合了LRU与LFU,来获得可用缓存的最佳使用。
设置容量之后将最大保持该容量大小的数据
后进的数据将会淘汰最久没有被访问的数据
位图类,根据访问的位看是否被占用
解决经典的是否被占用的问题,但是相对占用大小会较大
循环的圆结构
如果数据满了之后将自动在结尾后续添加,并保持最大个数
A
hash map implemented with quadratic probing and SIMD lookup.
A
hash set implemented as a
HashMap
where the value is
()
.
一个 lfu(least frequently used/最不经常使用页置换算法 ) 缓存的实现, 接口参照Hashmap保持一致
根据元素的访问次数进行按分组进行淘汰测试
在访问次数达到设定值时将全体所有的访问次数下降1处理
以使高频数据在一定时间后将过期处理
LRU 全称是Least Recently Used,即最近最久未使用的意思
一个 LRU 缓存普通级的实现, 接口参照Hashmap保持一致
设置容量之后将最大保持该容量大小的数据
后进的数据将会淘汰最久没有被访问的数据
一个 LRU-K 缓存的实现, 接口参照Hashmap保持一致
当一个元素访问次数达到K次后, 将移入到新列表中, 防止被析构
设置容量之后将最大保持该容量大小的数据
后进的数据将会淘汰最久没有被访问的数据
A red black tree implemented with Rust
It is required that the keys implement the
Ord
traits.
位图类RoaringBitMap,根据访问的位看是否被占用
本质上是将大块的bitmap分成各个小块,其中每个小块在需要存储数据的时候才会存在
解决经典的是否被占用的问题,不会一次性分配大内存
头部以val / 65536做为索引键值, 尾部分为Array及HashSet结构
当元素个数小于4096时以有序array做为索引, 当>4096以HashSet做为存储
一个缓存对象的实现, 类似linux中的slab
将一个对象重复循环使用, 避免频繁分配数据的可能
得出的对象可能未重新初始化, 为上一次的最终值, 请按需重新初始化
默认的初始化依赖Default接口, 请实现Default
计时器轮,模拟时钟格式组成的高效计时器