java - 获取内存(RAM)上的 map 大小

标签 java memory map

我正在使用 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/

相关文章:

java - GSON 将 JSON 对象识别为原始对象

c - 释放 malloc 内存时程序停止工作

java - 为什么Map不扩展Collection接口(interface)

python - 为什么 lambda 要求 2 个参数,尽管给出了 2 个参数?

HTML 背景图像映射

java - Selenium 网络驱动程序 : Help getting specific row data from a table

java - 在 Docker 上运行 Java Swing GUI 应用程序

java - PHP 为 ls 命令返回问号

python - java.lang.OutOfMemoryError : Unable to acquire 100 bytes of memory, 得到 0

c - 如何通过良好的设计保留堆栈空间?