javase----查看对象所占内存大小

https://github.com/openjdk/jol

<!--查看对象的大小-->
<dependency>
    <groupId>org.openjdk.jol</groupId>
    <artifactId>jol-core</artifactId>
    <version>0.16</version>
</dependency>
MemoryEntity memoryEntity = new MemoryEntity();
//输出对象内部信息
System.out.println("对象内部大小==>" + ClassLayout.parseInstance(memoryEntity).toPrintable());

//输出对象外部信息,包含引用对象
System.out.println(GraphLayout.parseInstance(memoryEntity).toPrintable());


//输出对象大小
System.out.println(GraphLayout.parseInstance(memoryEntity).totalSize());

/*
# WARNING: Unable to attach Serviceability Agent. You can try again with escalated privileges. Two options: a) use -Djol.tryWithSudo=true to try with sudo; b) echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
对象内部大小==>com.zs.博客.分析对象大小.MemoryEntity object internals:
OFF  SZ                                        TYPE DESCRIPTION                  VALUE
  0   8                                             (object header: mark)        0x0000000000000001 (non-biasable; age: 0)
  8   4                                             (object header: class)       0xf800c143
 12   4                                         int MemoryEntity.intField        0
 16   8                                        long MemoryEntity.longField       0
 24   2                                        char MemoryEntity.charField       
 26   1                                     boolean MemoryEntity.booleanField    false
 27   1                                             (alignment/padding gap)      
 28   4                            java.lang.String MemoryEntity.stringField     null
 32   4                            java.lang.String MemoryEntity.StringField2    (object)
 36   4   java.util.concurrent.atomic.AtomicInteger MemoryEntity.atomicInteger   null
Instance size: 40 bytes
Space losses: 1 bytes internal + 0 bytes external = 1 bytes total

com.zs.博客.分析对象大小.MemoryEntity@21a06946d object externals:
          ADDRESS       SIZE TYPE                          PATH                           VALUE
        76ad5ad30         40 com.zs.博客.分析对象大小.MemoryEntity                                (object)
        76ad5ad58         24 java.lang.String              .StringField2                  (object)
        76ad5ad70         32 [C                            .StringField2.value            [z, s,  , j, a, v, a]

Addresses are stable after 1 tries.


96

96字节 / 1024 = 0.09375kb
 */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悠闲的线程池

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值