我正在使用 HashMap 在我的应用程序启动时缓存一些重要数据。
此缓存有时会增加然后减少。我想知道它在 RAM 上占用了多少内存。
是否有可能以 KB 为单位获取 map 占用的内存?有API吗?
最佳答案
我正在使用这种方法来估计 MAP 大小:
public static void size(Map map) {
try{
System.out.println("Index Size: " + map.size());
ByteArrayOutputStream baos=new ByteArrayOutputStream();
ObjectOutputStream oos=new ObjectOutputStream(baos);
oos.writeObject(map);
oos.close();
System.out.println("Data Size: " + baos.size());
}catch(IOException e){
e.printStackTrace();
}
}
关于java - 获取内存(RAM)上的 map 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11329941/