关于 JVM TLAB
- 什么是 TLAB?
每个线程在 Eden 区申请的属于该线程的一块空间, 该线程在自己的 TLAB 申请空间, 不需要同步. 但是申请 TLAB 需要锁同步, 在 TLAB 之外申请空间, 需要锁同步. 关于 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}- 什么是 PLAB?