使用RamUsageEstimator计算对象占用堆的内存大小
maven
<!-- https://mvnrepository.com/artifact/com.carrotsearch/java-sizeof --> <dependency> <groupId>com.carrotsearch</groupId> <artifactId>java-sizeof</artifactId> <version>0.0.5</version> </dependency>
测试
ArrayList<Integer> list = new ArrayList<>(); for (int i = 0; i < 1000; i++) { list.add(i); } //计算指定对象及其引用树上的所有对象的综合大小,返回可读的结果,如:2KB System.out.println("humanSizeOf:" + RamUsageEstimator.humanSizeOf(list)); //计算指定对象本身在堆空间的大小,单位字节 System.out.println("shallowSizeOf:" + RamUsageEstimator.shallowSizeOf(list)); //计算指定对象及其引用树上的所有对象的综合大小,单位字节 System.out.println("sizeOf:" + RamUsageEstimator.sizeOf(list));
输出
humanSizeOf:20.5 KB shallowSizeOf:24 sizeOf:20976
上一篇:
92天倒计时,蓝桥杯省赛备赛攻略来啦~