要查看一个 map 的内存大小,可以使用 Java 的 Instrumentation API 或者使用 Apache Commons Lang 库中的 SizeOf 工具类。\n\n方法一:使用 Instrumentation API\n\njava\nimport java.lang.instrument.Instrumentation;\nimport java.util.HashMap;\nimport java.util.Map;\n\npublic class MapSizeTest {\n public static void main(String[] args) {\n Map<String, String> map = new HashMap<>();\n map.put("key1", "value1");\n map.put("key2", "value2");\n\n Instrumentation instrumentation = java.lang.management.ManagementFactory.getPlatformMBeanServer().getMBean(Instrumentation.class);\n long size = instrumentation.getObjectSize(map);\n System.out.println("Map size: " + size + " bytes");\n }\n}\n\n\n方法二:使用 Apache Commons Lang 库\n\njava\nimport org.apache.commons.lang3.SerializationUtils;\nimport java.util.HashMap;\nimport java.util.Map;\n\npublic class MapSizeTest {\n public static void main(String[] args) {\n Map<String, String> map = new HashMap<>();\n map.put("key1", "value1");\n map.put("key2", "value2");\n\n int size = SerializationUtils.serialize(map).length;\n System.out.println("Map size: " + size + " bytes");\n }\n}\n\n\n注意:这些方法只能估计 map 占用的内存大小,并不是精确的值。

Java Map 内存大小查看方法:Instrumentation API 和 Apache Commons Lang

原文地址: https://www.cveoy.top/t/topic/qnH7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录