Подсчёт ссылок: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Содержимое удалено Содержимое добавлено
Addbot (обсуждение | вклад) м Перемещение 9 интервики на Викиданные, d:q1352761 |
|||
Строка 9:
== Достоинства и недостатки ==
Главное '''достоинство''' подсчета ссылок перед [[сборка мусора#Отслеживающие сборщики мусора|отслеживающими сборщиками мусора]] в том, что объекты удаляются ''сразу'' как только на них нельзя сослаться, и в инкрементальной манере, без долгих пауз для циклов сборки и с ясно определенным временем жизни каждого объекта. В приложениях реального времени или в системах с ограниченной памятью это очень важно для поддержания малого времени отклика. Подсчет ссылок также является одним из ''простейших'' способов реализации сборки мусора. Он также обеспечивает эффективное управление не только памятью, но и другими видами ресурсов, например объектами операционной системы, которые часто гораздо
Счетчики ссылок также полезны в качестве входной информации для различных оптимизаторов времени исполнения. Например системы сильно зависимые от [[Неизменяемый объект|неизменяемых объектов]](многие [[Функциональное программирование|функциональные языки]]) могут проигрывать в производительности из-за частых операций копирования. Однако, если мы знаем что какой-то объект имеет только одну ссылку (Это верно для большинства разных систем), и эта ссылка потеряна а в то же время создан похожий новый объект (как в выражении по прибавлению строки <code>str ← str + "a"</code>), мы можем заменить эту операцию модификацией (''mutation'') исходного объекта.
|