GuavaCache invalidateAll() 与将变量设置为 null
GuavaCache invalidateAll() vs setting the variable to null
在 java 应用程序中,我试图在每小时结束时(基于系统时间)使番石榴缓存的所有条目无效。为此,我知道 guavaCache 的 invalidateAll() 方法。我正在考虑是使用 invalidateAll() 方法还是将缓存变量设置为 null 并允许 GC 清理堆。哪个更好?每种方法的优缺点是什么?
我的目标是确保因系统内存限制而尽快将无效条目从内存中清除。
根据您描述的方法,使用 Guava 缓存可能没有什么好处,您还不如使用 HashMap
。
正确配置缓存的逐出策略可能会更好,例如通过自动删除超过一小时的条目,或限制缓存大小。
请阅读有关 eviction 的章节了解详情。
在 java 应用程序中,我试图在每小时结束时(基于系统时间)使番石榴缓存的所有条目无效。为此,我知道 guavaCache 的 invalidateAll() 方法。我正在考虑是使用 invalidateAll() 方法还是将缓存变量设置为 null 并允许 GC 清理堆。哪个更好?每种方法的优缺点是什么?
我的目标是确保因系统内存限制而尽快将无效条目从内存中清除。
根据您描述的方法,使用 Guava 缓存可能没有什么好处,您还不如使用 HashMap
。
正确配置缓存的逐出策略可能会更好,例如通过自动删除超过一小时的条目,或限制缓存大小。
请阅读有关 eviction 的章节了解详情。