JOL工具及其分析对象在JVM的大小和分布
一、JOL简介
JOL全称为Java Object Layout,是分析JVM中对象布局的工具,该工具大量使用了Unsafe、JVMTI来解码布局情况,所以分析结果是比较精准的。通常分析java对象的大小需要人工按照Java基础数据类型大小及内容大小估算出缓存对象的大概堆占用,但是麻烦还不准。而OpenJDK,提供了JOL包,可以帮我们在运行时计算某个对象的大小,是非常好的工具。
官网:http://openjdk.java.net/projects/code-tools/jol/
应用:分析对象在JVM的大小和分布
依赖:
<!-- https://mvnrepository.com/artifact/org.openjdk.jol/jol-core -->
<dependency><groupId>org.openjdk.jol</groupId><artifactId>jol-core</artifactId><version>0.10</version>
</dependency>
二、JOL使用
先创建几个待分析的类对象:
public class A {}public class B {private long s;
}public class C {private int a;private long s;
}int[] aa = new int[0];
创建分析主函数:
public class Test {public static void main(String[] args) {A a = new A();System.out.println(ClassLayout.parseInstance(a).toPrintable());B b = new B();System.out.println(ClassLayout.parseInstance(b).toPrintable());C c = new C();System.out.println(ClassLayout.parseInstance(c).toPrintable());int[] aa = new int[0];System.out.println(ClassLayout.parseInstance(aa).toPrintable());}}
JOL工具及其分析对象在JVM的大小和分布相关推荐
- openjdk jol 工具打印 Java 对象内存布局
1.maven 依赖 <dependency><groupId>org.openjdk.jol</groupId><artifactId>jol-cor ...
- 使用JOL工具计算Java对象的大小
注意:本文默认环境为 64 位操作系统,JDK 为 1.8,JVM 为 HotSpot. 工具 JOL全称为Java Object Layout,是用来分析JVM中对象布局的工具,可以在运行时计算某个 ...
- JOL:查看Java 对象布局、大小工具
编写不易,转载请注明(http://shihlei.iteye.com/blog/2407693)! 一 概述 最近需求,打算再内存缓存数据,数据量130000万并且还会增加,了解这些数据占用空间的大 ...
- 2020 idea 查看内存消耗_查看运行时某个java对象占用JVM大小及通过idea查看java的内存占用情况...
一.如果想看运行时某个java对象占用JVM内存大小,可以先将对象转换成字节类型,然后计算: List bizGroupRelatedEventInfos = bizEventVersionMappe ...
- 【Android 内存优化】使用 Memory Analyzer ( MAT ) 工具分析内存 ( MAT 工具使用 | 最大对象 | 类实例个数 | 引用与被引用 | GC Roots 最短链 )
文章目录 一. 内存中最大的对象 二. 查看每个类的对象实例的个数 三. 查看对象的引用与被引用 四. 查看对象到 GC Roots 的最短距离 1. 选择 Merge Shortest Paths ...
- 利用java虚拟机的工具jmap分析java内存情况
2019独角兽企业重金招聘Python工程师标准>>> 有时候碰到性能问题,比如一个java application出现out of memory,出现内存泄漏的情况,再去修改bug ...
- 开源工具高效分析Java应用
开源工具高效分析Java应用 不止一次,我们都萌发过想对运行中程序的底层状况一探究竟的念头.产生这种需求的原因可能是运行缓慢的服务.Java虚拟机(JVM)崩溃.挂起.死锁.频繁的JVM暂停.突然或持 ...
- 常用 Java Profiling 工具的分析与比较
相对于静态代码分析,Profiling 是通过收集程序运行时的信息来研究程序行为的动态分析方法.其目的在于定位程序需要被优化的部分,从而提高程序的运行速度或是内存使用效率.收集程序运行时信息的方法主要 ...
- java jmap 分析_利用java虚拟机的工具jmap分析java内存情况
有时候碰到性能问题,比如一个java application出现out of memory,出现内存泄漏的情况,再去修改bug可能会变得异常复杂,利用工具去分析整个java application 内 ...
最新文章
- 人工智能在消费领域,都做了哪些事?
- win10+VS2013+opencv2.4.11的安装和配置
- Linux .bin安装文件制作
- Android开发之拍照功能实现
- 【Qt开发】QSplitter的使用和设置
- Flink的Table API 与SQL介绍及调用
- Oracle从零开始4——数据库更新操作
- MatLab 求平均值,方差,标准差
- 芝麻小程序客服移动版,一款更及时查看和回复消息的工具!
- 定积分求导例题_高中数学导数简单题——定积分、导数、导数的几何意义等解题方法...
- Loda Button
- 清梦_飘云羽逸_新浪博客
- 怎样在百度UMeditor编辑器中插入腾讯和爱奇艺网站视频?
- 华为企业交换机ACL经典案例
- web服务器服务不可用
- 匿名内部类的定义格式
- 《马克思主义基本原理》复习重点
- 使用LVM动态管理4T以上硬盘
- 工资少不加班与工资高但996,你选哪个
- Ansys Speos | 进行智能手机镜头杂散光分析
热门文章
- window系统 node.js安装 (node-v14安装配置、node-v16及其他版本安装配置)
- Linux系统cut命令详解
- fpga的EPCS 配置的2种方法(图文讲解,哈哈,网上互相抄袭的一些文字说明太不明了了)
- facenet 人脸识别库的搭建和使用方法(二)
- MySQL数据库:SQL执行顺序
- 杰理之 MIC录音 vbat电压低于3.2v会有很强的底噪?【篇】
- CCS 使用报错合集 -mcu:cc26xx
- deny all后如何优雅的处理403
- Nvidia Xavier Nx平台GMSL接口imx390相机驱动调试记录
- Xftp 7(FTP/SFTP客户端) V7.0.0107 官方中文免费正式版(附文件+安装教程)