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字节
    
  • 相关阅读:
    Excel长数字防止转换为科学计数法
    SVN迁移部署
    且行且珍惜
    功能的权衡——推荐功能做不做?
    渗透小白如何学编程
    Metasploit log命令技巧
    Metasploit 使用msfconsole帮助功能技巧
    Metasploit resource命令技巧
    Metasploit makerc命令技巧
    Metasploit irb命令使用技巧
  • 原文地址:https://www.cnblogs.com/yaozhixiang/p/15108599.html
Copyright © 2011-2022 走看看