使用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天倒计时,蓝桥杯省赛备赛攻略来啦~
