文件名称:lru-cache:带最小堆的 LRU 缓存实现
文件大小:10KB
文件格式:ZIP
更新时间:2024-06-27 13:53:06
Python
#LRU 缓存 描述:这个项目有点像实验,涉及 3 种不同的 LRU 缓存实现。 一个使用最小堆(通常用于优先级队列)而不是 OrderedDict,第二个使用集合包中的内置 OrderedDict,最后一个使用我自己的 OrderedDict 的简单实现。 观察:所有三个 LRU 缓存都有相同的测试。 我在缓存中运行了一些容量为 5 000 000 个元素的规模测试,并添加了额外的 500 002 个元素。 显然,最小堆对于插入、更新和删除有一个大 O(log n),所以它比有一个大 O(1) 的 OrderedDict 慢得多。 也就是说,在达到缓存容量之前,最小堆实际上会稍微快一点。 对具有 5 000 000 个元素容量的 3 个不同缓存进行分析: 插入元素的数量 最小堆 有序字典 我的字典 5 000 001 x 2 次测试 47.626s 52.375s 59.921
【文件预览】:
lru-cache-master
----.gitignore(6B)
----lru_cache_min_heap()
--------tests()
--------lru_cache.py(5KB)
----lru_cache_my_ordered_dict()
--------tests()
--------lru_cache.py(4KB)
----README.md(1KB)
----lru_cache_ordered_dict()
--------tests()
--------lru_cache.py(1KB)