OpendJDK有一个Java Object Layout (JOL)工具,可以用来估算指定对象的实例实际内存大小。它可以显示HotSpot的对象布局,但在OpenJ9中会相同吗?
发布于 2018-07-30 19:40:39
好吧,我想,答案是否定的,至少事实是,如果你也算上引用大小,有特定于HotSpot的UseCompressedOops。也许J9也有,但也可能没有。
还有填充的问题,在HotSpot中对象是8 bytes对齐的(关于继承有更复杂的事情),但我不知道J9是否做到了这一点……
发布于 2018-11-09 03:49:57
如果您有一个系统核心(例如,通过-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 https://stackoverflow.com/questions/51593101
复制相似问题