gpt4 book ai didi

最大大小为 1 的 Guava 缓存

转载 作者:行者123 更新时间:2023-12-02 03:18:14 26 4
gpt4 key购买 nike

可以使用最大大小为 1 的 Guava Cache 吗?

我读到有时甚至在达到最大大小之前就可能被驱逐。

但是,我只需要一个缓存条目。所以我想知道为安全但又不过分的最大尺寸设置什么值。

最佳答案

您应该可以使用 Cache.cleanUp() When Does Cleanup Happen? 中所述并测试最大 1 个套件是否满足您的需求。

例如下面显示使用 LoadingCache最大大小为 1 不会驱逐现有的条目,直到加载不同的条目来代替它:

final LoadingCache<Character, Integer> loadingCache = CacheBuilder.newBuilder()
.maximumSize(1)
.build(new CacheLoader<Object, Integer>() {
private final AtomicInteger loadInvocationCount = new AtomicInteger();

@Override
public Integer load(Object key) throws Exception {
return loadInvocationCount.getAndIncrement();
}
});
assert loadingCache.size() == 0;

assert loadingCache.getUnchecked('a') == 0;
assert loadingCache.size() == 1;

loadingCache.cleanUp();
assert loadingCache.size() == 1;

assert loadingCache.getUnchecked('a') == 0;
assert loadingCache.size() == 1;

assert loadingCache.getUnchecked('b') == 1;
assert loadingCache.size() == 1;

loadingCache.cleanUp();
assert loadingCache.size() == 1;

assert loadingCache.getUnchecked('a') == 2;
assert loadingCache.size() == 1;

loadingCache.cleanUp();
assert loadingCache.size() == 1;

请注意,这可能特定于 LoadingCache 的类型。正在构建,因此您需要测试您计划使用的任何配置。

关于最大大小为 1 的 Guava 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35250020/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com