我有一個數據結構,像這樣:如何計算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
更新了我的答案。 –