我正在考虑将咖啡因用于卸载到磁盘的值。键很小,但值可能需要几兆字节。我想,我可以依靠一个RemovalListener
来收拾烂摊子。
为了限制磁盘使用,我可以使用Caffeine.weigher
. 但是,maximumWeight
不能与 一起使用maximumSize
,因此在我的磁盘填充到足以导致驱逐之前,我可能会耗尽内存(因为使用了许多缓存条目)。
我想,这不太可能,但有可能,因为平均条目大小没有下限。
- 这样使用内存缓存有意义吗?
- 有充分的理由为什么
maximumSize
和maximumWeight
相互排斥?我可以想象两者共享一个插槽,但每个缓存节省 8 个字节恕我直言,这不算数。 - 有没有绕过这个限制的技巧?