有时候我们需要对比看那种数据结构的Java对象占用的内存比较少,这时候我们就需要查看内存大小。
借助org.apache.lucene工具类
当一个对象有多个属性,需要计算整个对象的大小时,可以借助org.apache.lucene工具类
先引入maven坐标
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
一个byte由8 bits组成,是数据存储的基础单位.
bit(比特)是表示信息的最小单位.
//按byte为单位查看
System.out.println("map size 100, value is " + RamUsageEstimator.sizeOf(map));
//按kb位单位查看
System.out.println("map size 100, value is " + RamUsageEstimator.humanSizeOf(map));