Каковы методы сбора мусора при компиляции сборника мусора на C? Я знаю два:
-
поддерживать теневой стек, который сохраняет все корни явно в структуре данных
-
используйте консервативный сборщик мусора, такой как Boehm's
Первый метод медленный, потому что вам нужно поддерживать теневой стек. Потенциально каждый раз, когда вызывается функция, вам необходимо сохранить локальные переменные в структуре данных.
Вторая техника также медленна и по своей сути не возвращает весь мусор из-за использования консервативного сборщика мусора.
Мой вопрос: что представляет собой современное состояние сбора мусора при компиляции C. Обратите внимание, что я не имею в виду удобный способ сделать сборку мусора при программировании на C (это цель сборщика мусора Boehm) просто способ сделать сборку мусора при компиляции на C.