测量对象在JVM中的大小
原文:https://www.baeldung.com/jvm-measuring-object-sizes
- 概述
对象的内存布局与具体的JVM实现相关。
本文讨论HotSpot JVM实现。
- Shallow,Retained,and Deep Object Sizes
对象大小的三个指标:Shallow,Retained,Deep
Shallow:对象本身(对象成员仅计算引用大小)
Deep:对象本身+其他对象
Retained:对象本身+仅该对象持有的对象
查看当前JVM基本对象大小:VM.current().details();
- 查看对象大小的方式
- Shallow
- ClassLayout.parseClass(Course.class).toPrintable()
- VM.current().sizeOf(course)
- instrumentation.getObjectSize(o)
- jcmd 63984 GC.class_stats InstSize,InstCount,InstBytes | grep Course
- Deep
- GraphLayout.parseInstance(course).toFootprint()
- Retained
- jcmd
GC.heap_dump [options] /path/to/dump/file
- jcmd

浙公网安备 33010602011771号