JOL = Java Object Layout 分析对象在JVM的大小和分布
官网:http://openjdk.java.net/projects/code-tools/jol/
pom依赖
org.openjdk.jol
jol-core
0.9
上代码:
public classTest {staticObject getObject() {
Map map = new HashMap<>();
map.put("a", 1L);
map.put("b", "b");
map.put("c", newDate());for (int i = 0; i < 10; i++) {
map.put(String.valueOf(i), String.valueOf(i));
}returnmap;
}public static voidmain(String[] args) {
Object obj=getObject();//查看对象内部信息
System.out.println(ClassLayout.parseInstance(obj).toPrintable());
System.out.println("----------我是分割线---------------");//查看对象外部信息
System.out.println(GraphLayout.parseInstance(obj).toPrintable());
System.out.println("----------我是分割线---------------");//获取对象总大小
System.out.println("size : " +GraphLayout.parseInstance(obj).totalSize());
}
}



本文通过使用JavaObjectLayout(JOL)工具分析了一个包含多种类型元素的HashMap对象在JVM中的布局与大小,并展示了如何利用JOL来获取对象的具体信息及其占用的空间。
229

被折叠的 条评论
为什么被折叠?



