AngelScript обладает пошаговым сборщиком мусора, который может быть вызван в течение коротких периодов времени, не требуя прерывания работы всего приложения. Рекомендуется вызывать GarbageCollect(asGC_ONE_STEP), что позволит выполнить один шаг процесса сборки мусора.
Это может быть не достаточно для всех приложений, так как некоторые скрипты могут производить больше мусора, чем другие. Одного шага может быть не достаточно для освобождения старого мусора до генерации нового. По этой причине рекомендуется отслеживать статистику сборщика мусора и корректировать частоту вызовов по мере необходимости. Статистику можно получить с помощью функции GetGCStatistics, которая возвращает количество объектов, известных в настоящее время для сборщика мусора, а также количество объектов, которые были уничтожены, и число объектов, которые были обнаружены как мусор с круговым ссылки.
Если скрипты производят много мусора, но лишь незначительная часть мусора образуется в циклических ссылках, приложение может вызывать GarbageCollect(asGC_FULL_CYCLE | asGC_DESTROY_GARBAGE), что будет разрушать только известный мусор, не пытаясь обнаружить циклические ссылки. Этот вызов является относительно быстрым, так как сборщик мусора совершает только тривиальные местные проверки, чтобы определить, является ли объектом мусором без циклических ссылок.
В заключение, если приложение переходит в состояние, в котором отзывчивость не критична, можно использовать полный цикл сборки мусора для очистки всего мусора сразу. Для этого вызовите GarbageCollect(asGC_FULL_CYCLE).