OpenJ9 VM对象布局

时间:2018-07-30 11:35:07

标签: java jol openj9

OpendJDK具有Java Object Layout (JOL)工具,该工具可以估计指定对象的实例实际内存大小。 它可以显示HotSpot的对象布局,但在OpenJ9中会一样吗?

2 个答案:

答案 0 :(得分:1)

嗯,恕我直言,至少对于 ,答案是否定的,如果您也计算引用的大小,那么{em {em}}是 HotSpot特有的UseCompressedOops 。可能是J9也有,但是可能没有。

也存在填充问题,因为HotSpot对象是8 bytes对齐的(关于继承的事情比较复杂),但是我不知道J9是否做到了…… >

答案 1 :(得分:1)

如果您具有系统核心(例如,通过-Xdump:system:events = vmstop),则可以使用jdmpview的!objectsizeinfo命令查看活动对象的大小,包括填充和对齐,例如:

> !objectsizeinfo java/lang/String

Object field size summary
=========================
Class             Total size  Data size  Space used  Instances  char  byte  short  int  long  float  double  boolean  object  hidden  
----------------  ----------  ---------  ----------  ---------  ----  ----  -----  ---  ----  -----  ------  -------  ------  ------  
java/lang/String  16          10*        66752       4172       0     2     0      0    0     0      0       0        1       0       
Class             Total size  Data size  Space used  Instances  char  byte  short  int  long  float  double  boolean  object  hidden  
Heap summary      66752       41720      66752       4172       0     8344  0      0    0     0      0       0        4172    0