lucene-core 为我们提供了简单的API,直接调用就能够简单的计算出一个Java对象占用内存的大小
使用方式:
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>4.6.0</version>
</dependency>
Java 简单示例
public void test1(){
// (8 + 4 + 4 + 8 + 4 +4 + 8 ) + 4*2 + 4
String s = new String("11111");
HashMap<String, String> map = new HashMap<>();
map.put("1","2");
map.put("2","2");
map.put("3","2");
System.out.println(RamUsageEstimator.shallowSizeOf(s));
System.out.println(RamUsageEstimator.humanSizeOf(s));
Address address = new Address();
address.setAreaId(1);
address.setName("A");
System.out.println(RamUsageEstimator.shallowSizeOf(address));
System.out.println(RamUsageEstimator.humanSizeOf(address));
}
参考:Java 对象(数组)占多大空间(几个字节) 手把手做实验_wanjinyu的技术空间的博客-CSDN博客_java数组占多少字节
|