君子以自强不息。
参数介绍和调优
- 在优化调试 TLAB 的时候,在调试环境中可以通过打开 PrintTLAB 来观察 TLAB 分配和使用的情况。
- 参数 UseTLAB,指是否使用 TLAB。大量的实验可以证明使用 TLAB 能够加速对象分配;该参数默认是打开的。
- 参数 ResizeTLAB,指是否允许 TLAB 大小动态调整。TLAB 动态化调整主要是基于历史信息(分配大小、线程数等),使用动态调整 TLAB 大小效率更高。
- 参数 MinTLABSize,指设置 TLAB 的最小值。实际应用需要设置该值,比如 64K,一般可以根据情况设置和调整该值。
- 参数 TLABSize,指设置 TLAB 的大小。实际中不要设置 TLABSize,设置之后 TLAB 就不能动态调整了,即会使用一个固定大小的 TLAB,GC 可以根据情况动态调整 TLAB,在分配效率和内存碎片之间找到一个平衡点,如果设置该值则这种平衡就失效了。
- 参数 TLABWasteTargetPercent,指的是 TLAB 可占用的 Eden 空间的百分比,默认值是1。可以根据情况调整 TLABWasteTargetPercent,增大则可以分配更多的 TLAB,如果实际中线程数目很多,建议增大该值,这样每个线程的 TLAB 不至于太小。
- 参数 TLABWasteIncrement,指的是动态的增加浪费空间的字节数,默认值是4。增加该值会增加 TLAB 浪费的空间;一般不用设置。
- 参数 GCLockerRetryAllocationCount 默认值为2,表示当分配中的垃圾回收次数超过这个阈值之后则直接失败。