Crate algorithm

source ·

Re-exports§

Modules§

Structs§

  • 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
  • 计时器轮,模拟时钟格式组成的高效计时器

Traits§

Type Aliases§