我想要一个基于成本权重进行管理的缓存库。
我有许多完全相同结构的不同类型的数据要缓存,但它的成本不同,缓存每一种不同的类型,一些非常便宜,一些是昂贵的。
我想要一种方法,我可以在缓存库中添加一个权重,这样它就可以有效地缓存,以最大限度地减少缓存未命中。
发布于 2020-12-08 17:51:02
为每个值关联一个权重,使其实现您自己的接口,例如Weightable,并使用:
public class WeightPolicy extends AbstractPolicy {
@Override
public String getName() {
return "Weight";
}
@Override
public boolean compare(Element element1, Element element2) {
return ((Weightable) element1.getObjectValue()).getWeight() < ((Weightable) element2.getObjectValue()).getWeight();
}
}如果键和值为Serializable,则可以使用getSerializedSize(),尽管效率非常低。
return element1.getSerializedSize() < element2.getSerializedSize();https://stackoverflow.com/questions/65156964
复制相似问题