175得票21回答
如何在Java中实现LRU缓存?

请不要提EHCache或OSCache等缓存工具。为了实践学习,假设我想使用SDK自己实现一个缓存。鉴于该缓存将在多线程环境中使用,哪些数据结构会更合适?我已经使用LinkedHashMap和Collections#synchronizedMap实现了其中一个,但我很好奇是否有任何新的并发集合...

113得票3回答
Lru_cache(来自functools)是如何工作的?

特别是在使用递归代码时,使用lru_cache可以大大提高性能。我理解缓存是一个空间,用于存储需要快速服务的数据,并避免计算机重新计算。 Python的lru_cache从functools内部如何工作? 我正在寻找一个具体的答案,它是否像Python的其他部分一样使用字典?它只存储ret...

94得票10回答
Python functools lru_cache与实例方法:释放对象

如何在类中使用functools.lru_cache而不会泄漏内存? 在下面的最小示例中,foo实例尽管超出作用域且没有引用者(除了lru_cache),但仍无法释放。from functools import lru_cache class BigClass: pass class ...

89得票14回答
LRU缓存设计

最近最少使用 (LRU) 缓存指的是优先丢弃最近最少使用的缓存项。如何设计和实现这样一个缓存类? 设计要求如下: 1) 尽可能快地查找缓存项 2) 一旦缓存未命中且缓存已满,我们需要尽可能快地替换最近最少使用的缓存项。 如何从设计模式和算法设计的角度分析和实现这个问题?

87得票4回答
LRU和LFU有什么不同?

LRU和LFU缓存实现的区别是什么? 我知道可以使用LinkedHashMap实现LRU。但是如何实现LFU缓存?

80得票2回答
使@lru_cache忽略一些函数参数

如何让@functools.lru_cache装饰器忽略某些函数参数以便于缓存键? 例如,我有一个函数长这样: def find_object(db_handle, query): # (omitted code) return result 如果我只是这样应用lru_...

77得票5回答
Java中易于使用的LRU缓存

我知道这很容易实现,但我想重用已经存在的东西。 我想解决的问题是,我会为不同的页面、角色等加载配置(从XML中),因此输入的组合可能会变得非常多(但在99%的情况下不会)。为了处理这1%,我想在缓存中设置一些最大数量的项目... 到目前为止,我已经找到了apache commons中的or...

64得票8回答
如何限制字典的大小?

我想在Python中使用字典,但是需要限制键/值对的数量为X。换句话说,如果该字典当前存储了X个键/值对,并且我执行插入操作,我希望其中一个现有的键/值对被删除。最好是最近插入/访问的键,但这并不完全必要。 如果标准库中存在此功能,请告诉我以节省时间!

50得票3回答
Python LRU缓存装饰器按实例分类

使用在此处找到的LRU Cache修饰符:http://code.activestate.com/recipes/578078-py26-and-py30-backport-of-python-33s-lru-cache/from lru_cache import lru_cache clas...

40得票13回答
有没有IDictionary的LRU实现?

我想实现一个简单的内存LRU缓存系统,考虑使用基于IDictionary实现的哈希LRU机制解决方案。 由于我的经验来自Java,我熟悉LinkedHashMap,它对我所需的功能很好:但是我在.NET中找不到类似的解决方案。 有人开发过这样的解决方案或者有类似的经验吗?