美文网首页
【深入浅出-JVM】(8):TLAB

【深入浅出-JVM】(8):TLAB

作者: mousycoder | 来源:发表于2019-07-17 18:11 被阅读0次

概念

TLAB(Thread Local Allocation Buffer)线程本地分配缓冲区(线程私有分配区,私有分配,公共查看),占用 Eden 区(缺省 Eden 的1%),默认开启,JVM 会为每一个线程分配一块 TLAB 区域,避免堆对象共享造成的多线程线程同步。

背景

优化多线程堆空间分配对象指针碰撞问题

局限性

  1. TLAB空间一般不会太大,大对象直接进堆

  2. TLAB允许空间浪费,导致Eden区不连续,触发 GC

分配策略

一个 100KB 的 TLAB 区域,如果已经使用了 80KB,当需要分配 30KB 的对象时,虚拟机有 2 种选择:1. 废弃当前 TLAB 2.将 30KB 对象分配到堆上,保留当前 TLAB 给小于 20KB 的对象分配

开启命令

-XX: +UseTLAB (默认开启)


感谢您的耐心阅读,如果您发现文章中有一些没表述清楚的,或者是不对的地方,请给我留言,您的鼓励是作者写作最大的动力。

作 者 : @mousycoder

原文出处 : http://mousycoder.com/thinking-in-jvm/8/

相关文章

  • 【深入浅出-JVM】(8):TLAB

    概念 TLAB(Thread Local Allocation Buffer)线程本地分配缓冲区(线程私有分配区,...

  • 【译】JVM Anatomy Park #4: TLAB 分配

    原文地址:JVM Anatomy Park #4: TLAB allocation 问题 TLAB 分配是什么?指...

  • 为何 JVM TLAB 在线程退还给堆的时候需要填充 dummy

    TLAB 全网最硬核的解析,请参考:全网最硬核 JVM TLAB 分析[https://zhuanlan.zhih...

  • JVM TLAB

    JVM内存结构,是很重要的知识,需要每个人都可以清楚的把堆、栈、方法区等介绍的比较清楚。 上图,是《Java虚拟机...

  • JVM基础 - GC篇

    HotSpot 垃圾回收器 全网最硬核 JVM TLAB 分析[https://www.bilibili.com/...

  • JVM虚拟机

    Java虚拟机学习笔记,基于JDK8(慢慢完善) 对象分配 在对象分配时,JVM把TLAB作为首选,开发人员通过-...

  • JVM系列之TLAB

    一、前言 上一篇,我们已经知道逃逸分析的作用和优势了,那么今天,我们就来看下TLAB(Thread Local A...

  • 浅析java中的TLAB

    好久,好久....没有更博客了。这一次利用闲暇时间,来扯一下关于JVM中的TLAB。什么是TLAB?它是干什么的?...

  • JVM——栈分配与TLAB

    前言 在学习Java的过程中,一般认为new出来的对象都是被分配在堆上的,其实这个结论不完全正确,因为是大部分ne...

  • 2020-12-26 JVM -- 垃圾收集算法和对象生命周期介

    JVM默认为每个线程在Eden上开辟一个buffer区域,用来加速对象的分配,称之为TLAB,全称:Thread ...

网友评论

      本文标题:【深入浅出-JVM】(8):TLAB

      本文链接:https://www.haomeiwen.com/subject/azpclctx.html