Сборщики мусора работают автоматически, во время сборки мусора выполнение программы полностью приостанавливается, поэтому частая работа сборщика мусора может повлиять на производительность приложения

Наиболее популярными алгоритмами для сборщиков мусора являются Mark and Sweep GC и Reference Counting GC .

Есть еще Automatic Reference Counting(ARC) - функция Clang компилятора. Вместо процесса, который срабатывает через определенный промежуток времени и ставит выполнение программы на паузу, в данном случае инструкции по высвобождению и удержанию памяти (release и retain ) вставляются в код во время компиляции.

Память очищается автоматически во время выполнения программы без ее приостановки. Такой механизм управления памятью используется в языках Objective C и Swift

Mark and Sweep GC

Mark and Sweep Garbage Collection

Сборщик идет по объектам, начиная с корня (в случае JS это window или global) и помечает достижимыми те, до которых может пройти по ссылками. А те, до которых дойти не может - считает неиспользуемыми и они будут удалены.

Reference Counting GC

При таком алгоритме, каждый объект имеет счетчик ссылок, этот счетчик увеличивает или уменьшает свое значение в зависимости от того, сколько других объектов на него (объект) ссылаются. Как только его значение становится равным нулю - сборщик мусора очищает выделенную для объекта память.