我正在为我的项目评估缓存。cache2k看起来很有希望。我查阅了这些文件,但找不到以下项目:
发布于 2020-08-15 08:47:59
可以根据内存大小(以字节为单位)限制cache2k排除条目(或溢出到磁盘)吗?
几天后,我将发布版本1.4,其中包括对Weigher的支持。使用该方法,您可以提供一个每当创建或更新条目时都会调用的方法,该方法返回条目的权重,例如,反映其在堆上的近似大小。这包括在库中连接估计条目的内存大小的可能性,这将提供所需的内容。
每个估计大小的库都需要在对象引用中导航。如果引用了一些全局对象,这是非常昂贵的,并且可能会失败。例如,引用的String对象可能是内部的。
在某些情况下,称重器很容易实现。例如,如果缓存有字节数组的图像,则秤可以只返回数组大小。
如果您的缓存条目大小相似,我建议不要使用秤。即使是一个简单的衡器实现,也会产生开销。有了称重器,条目更新将导致全局数据的更新(缓存中的总权重),并需要额外的锁定和同步。
cache2k是否会溢出到磁盘?
这在1.0之前的版本中是存在的,但在清理过程中被删除,以关注基于堆的纯缓存。但是,API的总体设计和内部结构仍然铭记这一点,因此可以再次添加该特性。在某种程度上这可能会发生,但不会很快。
https://stackoverflow.com/questions/63410271
复制相似问题