java 对象创建流程
TLAB
TLAB全称是Thread Local Allocation Buffer 即线程本地分配缓存,从名字上看是一个线程专用的内存分配区域,是为了加速对象分配而生的。每一个线程都会产生一个TLAB ,该线程独享的工作区域,Java虚拟机使用这种TLAB区来避免多线程冲突问题,提高了对象分配的效率。TLAB 空间一般不会太大,当大对象无法在TLAB分配时,则会直接分配到堆上。
-XX:+UseTLAB 使用TLAB
-XX:+TLABSize设置TLAB大小
-XX:TLABRefillWasterFraction 设置维护进入TLAB空间的单个对象大小,他是一个比例值,默认为64,即如果对象大于整个空间的1/64,则在堆创建对象。
-XX:+PrintTLAB 查看TLAB信息
-XX:ResizeTLAB 自调整TLABRefillWasterFarction阀值