Я подумал о GC, с которым не вижу серьезных недостатков, и мне интересно, почему он не используется более широко, или почему я не слышал о его использовании.
Система:
- Все объекты имеют 4-байтовый беззнаковый счетчик int, прикрепленный к ним. (Может быть 2 байта, я не знаю.
- Всякий раз, когда объект создается, его счетчик начинается с 1.
- Когда объект отправляется функции в качестве параметра, его счетчик увеличивается.
- Когда объект достигает точки, где он больше не используется в функции (это может быть самый конец области видимости), его счетчик уменьшается.
- Когда счетчик объекта достигает нуля, он удаляется, так как ни на одной позиции в коде нет ссылок.
Есть ли дополнительный случай, в котором счетчик выходит из строя? Каковы недостатки и преимущества?
Заранее благодарю за помощь.