zoukankan      html  css  js  c++  java
  • 查看java对象占用内存大小

    1.引入maven依赖

    <dependency>
        <groupId>org.openjdk.jol</groupId>
        <artifactId>jol-core</artifactId>
        <version>0.9</version>
    </dependency>
    

    2.查看实体占用内存大小

    public static void main(String[] args) {
        CustDetailInfo obj = assembleCustDetail(custSplit);
        System.out.println(ClassLayout.parseInstance(obj).toPrintable());
        //查看对象内部信息
        System.out.println(ClassLayout.parseInstance(obj).toPrintable());
        //查看对象外部信息
        System.out.println(GraphLayout.parseInstance(obj).toPrintable());
        //获取对象总大小
        System.out.println("size : " + GraphLayout.parseInstance(obj).totalSize());
    }
    

    3.查看实体占用内存大小

    配置指针压缩参数,对内存对象进行压缩:自定义对象压缩明显,能压缩40%, 默认是对指针进行了压缩

    /**
     * object header: x86-8 Bytes x64-16 Bytes
     * primitive type:
     * - boolean-1 Byte
     * - byte-1 Byte
     * - short-2 Bytes
     * - char-2 Bytes
     * - int-4 Bytes
     * - float-4 Bytes
     * - long-8 Bytes
     * - double-8 Bytes
     * - String-4 Bytes
     * reference: x86-4 Bytes x64-8 Bytes
     * padding: by 8 Bytes
     */
     经测试在64位机子上面,String是4字节,填充是由内填充+扩展填充,一般
     内填充是0,扩展填充是4字节
    
  • 相关阅读:
    0529学习进度条
    0523-学习进度条
    0515-学习进度条
    实验三-进程模拟调度
    0501-学习进度条
    0424-学习进度条
    0422—操作系统作业调度
    0415-同学博客评价
    0414-复利计算再升级
    0409-学习进度条
  • 原文地址:https://www.cnblogs.com/yaozhixiang/p/15108599.html
Copyright © 2011-2022 走看看