我有一个数据结构,像这样:如何计算Lrucache的sizeof?
public class Data{
private String charData;
private int intData;
//get-set methods here
}
现在,我想创建一个LRU缓存和我需要的sizeof覆盖......在Java的每个字符占用2个字节,而一个int是4个字节我虽然做:
cachedData= new LruCache<String,Data>(CACHE_MB*1024*1024){
protected int sizeOf(String k,Data v){
return 4 +2*v.getCharData().length();
}
,但字符串是对象,所以我认为他们需要的不仅仅是记忆个字符,而且数据是一个对象,也因此我不知道我的方法是正确的。
顺便说一句,如果我用错误的sizeOf方法达到最大缓存大小会发生什么情况?
是的它是:我不知道“极端”对你意味着什么,但字符串字段可以从200到700-1000个字符(它们是文章)变化。那么,我需要它吗?在这种情况下,我的实施可以吗? – Phate
更新了我的答案。 –