Сборщик мусора в Dart работает по принципу поколенческой сборки и использует алгоритм Mark-Sweep.
Поколенческая сборка: Объекты делятся на два "поколения":
Алгоритм Mark-Sweep:
Minor GC: Происходит часто, только в молодом поколении. Быстрая операция.
Major GC: Происходит реже, затрагивает оба поколения. Более затратная операция. Объекты, которые переживают определенное количество Minor GC, перемещаются в Old generation (promotion).
В Dart, сборщик мусора работает автоматически в фоновом режиме, без необходимости ручного управления. Это stop-the-world сборщик мусора, что означает, что выполнение программы приостанавливается на короткое время во время сборки мусора, особенно во время Major GC. Однако, благодаря оптимизациям и поколенческой сборке, эти паузы обычно очень короткие и редко заметны в большинстве приложений.