有时候我们需要查看排查内存溢出、java大对象大概需要多少内存空间、什么数据结构占用空间较小等,都需要查看java对象所占内存大小
借助org.apache.lucene工具类
<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>
System.out.println("object size(byte) is: " + RamUsageEstimator.sizeOf(obj));
System.out.println("object size(kb) is: " + RamUsageEstimator.humanSizeOf(obj));