Что такое TLAB и почему аллокация в Java почти бесплатна?

Senior
290 просмотров
AFK Offer AI

TLAB (Thread-Local Allocation Buffer) — каждый поток получает свой кусок Eden. Аллокация объекта = просто увеличить pointer на sizeof(object), no synchronization. Это делает аллокацию в Java невероятно дешёвой — дешевле чем malloc в C в многопоточном контексте. Когда TLAB заполняется — поток запрашивает новый. Это главная причина почему в Java не страшно создавать много маленьких объектов.

Следующий вопрос

Как анализировать thread dump для поиска deadlock?