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

2019-08-16 10:33:09来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

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

概念

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/


原文链接:https://www.cnblogs.com/mousycoder/p/11202767.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Spring JDBC

下一篇:Java--获取request中所有参数的方法