存量房交易网站建设,盐城网站建设案例,河东做网站,初中毕业生怎么自考大专系列文章目录 文章目录 系列文章目录一、什么是指针碰撞#xff1f;二、什么是空闲列表三、什么是TLAB#xff1f; 一、什么是指针碰撞#xff1f;
一般情况下#xff0c;JVM的对象都放在堆内存中#xff08;发生逃逸分析除外#xff09;。当类加载检查通过后#xff0…系列文章目录 文章目录 系列文章目录一、什么是指针碰撞二、什么是空闲列表三、什么是TLAB 一、什么是指针碰撞
一般情况下JVM的对象都放在堆内存中发生逃逸分析除外。当类加载检查通过后Java虚拟 机开始为新生对象分配内存。如果Java堆中内存是绝对规整的所有被使用过的的内存都被放到一 边空闲的内存放到另外一边中间放着一个指针作为分界点的指示器所分配内存仅仅是把那个 指针向空闲空间方向挪动一段与对象大小相等的实例这种分配方式就是 指针碰撞
二、什么是空闲列表
如果Java堆内存中的内存并不是规整的已被使用的内存和空闲的内存相互交错在一起不可以进 行指针碰撞啦虚拟机必须维护一个列表记录哪些内存是可用的在分配的时候从列表找到一块 大的空间分配给对象实例并更新列表上的记录这种分配方式就是空闲列表。代码片
三、什么是TLAB
可以把内存分配的动作按照线程划分在不同的空间之中进行每个线程在Java堆中预先分配一小块 内存,这就是TLABThread Local Allocation Buffer本地线程分配缓存 。虚拟机通过 - XX:UseTLAB 设定它的。