获取对象占用内存

public static long getByte(List dataList) {
// 初始化字节大小为0
long byteSize = 0;

// 遍历数据列表
for (int i = 0; i < dataList.size(); i++) {
    // 获取当前元素
    Object data = dataList.get(i);

    // 检查元素是否非空
    if (data != null) {
        // 使用ClassLayout解析对象实例,获取其占用的字节数
        long len = ClassLayout.parseInstance(data).instanceSize();

        // 累加对象大小到总字节数
        byteSize += len;
    }
}
// 返回总字节数
return byteSize;

}
此函数的功能如下:
初始化:定义一个变量byteSize用于存储所有对象的总字节数,初始值为0。
遍历列表:通过for循环遍历传入的dataList中的每一个元素。
检查元素:对于每个元素,首先检查它是否为非空对象。
计算大小:如果元素非空,则使用ClassLayout.parseInstance方法解析该对象,并调用instanceSize方法获取其在内存中占用的字节数。
累加大小:将当前对象的字节数累加到byteSize中。
返回结果:遍历结束后,返回byteSize作为所有对象的总字节数。
这个函数主要用于计算一个对象列表在JVM中所占用的总字节数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值