关于 JVM TLAB

  1. 什么是 TLAB?
    每个线程在 Eden 区申请的属于该线程的一块空间, 该线程在自己的 TLAB 申请空间, 不需要同步. 但是申请 TLAB 需要锁同步, 在 TLAB 之外申请空间, 需要锁同步.
  2. 关于 TLAB 的参数
    使用如下命令可以看到所有跟 TLAB 相关的参数:
$java -XX:+PrintFlagsFinal -version | grep TLAB

比如我在 JDK 11 上, 可以看到如下有关 TLAB 的参数:

   size_t MinTLABSize                              = 2048                                      {product} {default}
     bool ResizeTLAB                               = true                                   {pd product} {default}
    uintx TLABAllocationWeight                     = 35                                        {product} {default}
    uintx TLABRefillWasteFraction                  = 64                                        {product} {default}
   size_t TLABSize                                 = 0                                         {product} {default}
     bool TLABStats                                = true                                      {product} {default}
    uintx TLABWasteIncrement                       = 4                                         {product} {default}
    uintx TLABWasteTargetPercent                   = 1                                         {product} {default}
     bool UseTLAB                                  = true                                   {pd product} {default}
     bool ZeroTLAB                                 = false                                     {product} {default}
  1. 什么是 PLAB?

标签: none

添加新评论