Можно же запихать в 4 бита и возраст в 64 сборки мусора, только грубее. Тогда JVM аналогично с CompressedPointers придётся просто не каждый раз этот возраст инкрементить, не каждую сборку. Нужно промоутить после 30 сборок - ок, значит будем инкрементить каждый второй раз на выживших объектах, нужно промоутить через 63 поколения - ок, значит 3 из 4 сборок не увеличивают тот же счётчик... И ведь не так важно юзеру - промоутить через 61 или 63, так что потеря точности не мешает. Только наверное тут смысла мало, а имплементить, вроде бы, ничего не мешает. Ну и работает это только для сборок целиком всей области Survivor.
shipilov as always delivers awesome clear content