测量对象在JVM中的大小

原文:https://www.baeldung.com/jvm-measuring-object-sizes

  1. 概述

对象的内存布局与具体的JVM实现相关。

本文讨论HotSpot JVM实现。

  1. Shallow,Retained,and Deep Object Sizes

对象大小的三个指标:Shallow,Retained,Deep

Shallow:对象本身(对象成员仅计算引用大小)

Deep:对象本身+其他对象

Retained:对象本身+仅该对象持有的对象

查看当前JVM基本对象大小:VM.current().details();

  1. 查看对象大小的方式
  • 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
posted @ 2022-10-24 23:53  rxh1999  阅读(85)  评论(0)    收藏  举报