2021
08-06
08-06
浅谈JVM中的JOL
目录JOL简介使用JOL分析VM信息使用JOL分析String使用JOL分析数组使用JOL分析自动装箱使用JOL分析引用关系总结JOL简介JOL的全称是JavaObjectLayout。是一个用来分析JVM中Object布局的小工具。包括Object在内存中的占用情况,实例对象的引用情况等等。JOL可以在代码中使用,也可以独立的以命令行中运行。命令行的我这里就不具体介绍了,今天主要讲解怎么在代码中使用JOL。使用JOL需要添加maven依赖:<dependency><groupId>org....
继续阅读 >
java对象布局JOL(javaobjectlayout),描述对象在堆内存的布局。如下图:1.markword固定长度8byte,描述对象的identityhashcode,分代年龄,锁信息等(https://www.jb51.net/article/183984.htm);2.klasspoint固定长度4byte,指定该对象的class类对象;3.基本变量:用于存放java八种基本类型成员变量,以4byte步长进行补齐,使用内存重排序优化空间;4.引用变量:存放类的引用变量句柄,如String,Object;每个句柄大小在32位...
jol(javaobjectlayout)需要的依赖<dependency><groupId>org.openjdk.jol</groupId><artifactId>jol-core</artifactId><version>0.10</version></dependency>一。synchronized锁对象的升级(膨胀)过程主要如下:1.膨胀过程:无锁(锁对象初始化时)->偏向锁(有线程请求锁)->轻量级锁(多线程轻度竞争)->重量级锁(线程过多或长耗时操作,线程自旋过度消耗cpu);2.jvm默认延时4s自动开启偏向锁(...