高速缓存
大致基于的恒定时间最少使用(LFU)高速缓存的简单实现。
例子
use lfu_cache :: LfuCache;
let mut cache = LfuCache :: with_capacity ( 2 );
// Fill up the cache.
cache. insert ( "foo" , 3 );
cache. insert ( "bar" , 4 );
// Insert returns the evicted value, if a value was evict
双窗口缓存
双窗口缓存使用两个滑动窗口自适应地协调LRU与LFU的比率。
性能比较
命中率 (%)
LRU的x0.9-2.8命中率更高。
'LRU hit rate even 100', 10.0505
'DWC hit rate even 100', 10.113
'LFU ratio even 100', 43, 43
'DWC / LRU hit rate ratio even 100', '100%'
'LRU hit rate uneven 100', 18.5265
'DWC