Кто-нибудь знает алгоритм GC, который использует информацию о типе, чтобы разрешить инкрементный сбор, оптимизированный сбор, параллельный сбор или какую-либо другую полезную функцию?
Под информацией о типе я подразумеваю реальную семантику.Позвольте мне привести пример: предположим, у нас есть класс стиля OO с методами для поддержки списка, который скрывает представление.Когда объект становится недоступным, сборщик может просто запустить список, удалив все узлы.Он знает, что все они сейчас недоступны из-за инкапсуляции.Он также знает, что нет необходимости выполнять общее сканирование узлов на наличие указателей, поскольку он знает, что все узлы имеют одинаковый тип.
Очевидно, что это особый случай, который легко обрабатывается деструкторами в C ++.Реальный вопрос заключается в том, есть ли способ проанализировать типы, используемые в программе, и дать указание сборщику использовать полученную информацию с пользой.Полагаю, вы бы назвали этот сборщик мусора типа .