Выбор ответа Senior Память и сборка мусора обновлено
Зачем V8 делит кучу на поколения
Вопрос
Почему V8 разделяет кучу на молодое и старое поколение?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Большинство объектов живут недолго, и частая сборка только молодых дешевле. Гипотеза поколений: большинство объектов умирает вскоре после создания.
Варианты ответа
- Большинство объектов живут недолго, и частая сборка только молодых дешевлеправильный ответ
- Молодое поколение хранит примитивы, а старое объекты, массивы и функции
- Старое поколение никогда не очищается, поэтому туда кладут долгоживущее
- Это нужно, чтобы ограничить размер одного объекта половиной молодой области
Разбор
Гипотеза поколений: большинство объектов умирает вскоре после создания. Поэтому новые объекты кладут в небольшую молодую область и часто чистят её быстрым копирующим сборщиком; пережившие пару сборок переезжают в старое поколение, которое собирается реже и дольше. Примитивы тут ни при чём: в куче лежат и строки, и числа-объекты. Старое поколение тоже очищается, mark-sweep-compact. На размер отдельного объекта разделение не влияет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.