https://alidg.me/blog/2019/6/21/tlab-jvm
As it turns out, for even more faster allocations, JVM divides the Eden space into a few more sub-regions, each dedicated to a particular thread. Each of those dedicated regions is called Thread-Local Allocation Buffers or TLAB for short.
uintx MinTLABSize = 2048 {product}
TLAB Sizing#
If the -XX:TLABSize flag was set to a positive number (Defaults to zero), then the initial size of a TLAB would be equal to -XX:TLABSize divided by Heap Word Size. Otherwise, the initial size would be a function of the average number of allocating threads. Also, the TLAB size can’t be:
More than a maximum value.
Less than a minimum value determined by
-XX:MinTLABSizeflag.
If the -XX:ResizeTLAB is enabled (Which is by default), then JVM can adaptively resize the TLAB size. The new size is always depends on three major factors:
Number of application threads
Allocation rate
Eden Size
Ref#
https://alidg.me/blog/2019/6/21/tlab-jvm https://blogs.oracle.com/jonthecollector/the-real-thing https://chowdera.com/2021/04/20210412130159067f.html