Garbage collection (GC) — это система автоматического управления памятью в JavaScript. Она определяет и освобождает память, занятую объектами, которые больше не доступны или не нужны программе.
Это основной алгоритм сборки мусора, используемый в движках JavaScript. Он работает в два этапа:
Любой объект, недостижимый из корня, считается мусором, и его память освобождается.
Современные движки, такие как V8 (используется в Chrome и Node.js), оптимизируют производительность GC с помощью генерационной стратегии, основанной на наблюдении, что большинство объектов живут недолго.
Память разделена на два поколения:
Объекты, которые достаточно долго прожили в young generation, продвигаются в old generation.
Young Generation → быстрая, частая сборка
Old Generation → медленнее, редкая сборка
Это разделение означает, что V8 не сканирует все объекты на каждом цикле, значительно сокращая паузы и улучшая общую производительность.
Понимание GC помогает писать лучший код — например, избегать утечек памяти, не удерживая ненужные ссылки, что не даёт движку считать объекты достижимыми там, где они уже должны были быть освобождены.
В алгоритме mark and sweep фаза mark идентифицирует все достижимые объекты, начиная с корневых объектов и проходя по их ссылкам, а фаза sweep освобождает память, занятую объектами, которые не были помечены во время фазы mark.
Новый — ещё не проверен сообществом
Вы