删除钥匙时,将番石榴映射缓存收缩


private Cache<Object, String> cache = CacheBuilder.newBuilder()
        .concurrencyLevel(4)
        .expireAfterAccess(24, TimeUnit.HOURS)
        .initialCapacity(1024)
        .maximumSize(1_00_000)
        .build();
private ConcurrentMap<Object, String> cacheMap = cache.asMap();

这是我的代码,它很简单,并且只是创建了guava地图缓存。问题是,如果我从此地图中删除()键,GC是否能够从此地图中索取内存?不使用弱referference(我不是在存储诸如设置或地图等的巢对象...)?

来自Guava的Cache.asMap Javadoc(重点是我的):

返回存储在此缓存中的条目的视图,作为线程安全地图。对地图进行的修改直接影响缓存。

以及从Guava的缓存解释 Wiki页面:

随时您可以明确无效缓存条目,而不是等待条目被驱逐。

您可能需要检查整个Wiki页面,而不是我突出显示的部分。

最新更新