接上文PLAB---》
可以看到和TLAB很像,PLAB即 Promotion Local Allocation Buffers。用在年輕代對象晉升到老年代時。
-
在多線程并行執行YGC時,可能有很多對象需要晉升到老年代,此時老年代的指針就"熱"起來了,于是搞了個PLAB。
-
先從老年代 freelist(空閑鏈表)申請一塊空間,然后在這一塊空間中就可以通過指針加法(bump thepointer)來分配內存,這樣對freelist競爭也少了,分配空間也快了。
大致就是上圖這么個思想,每個線程先申請一塊作為PLAB,然后在這一塊內存里面分配晉升的對象。這和TLAB的思想相似。