Подсчет ссылок

Оглавление1 Подсчет ссылок1.1 Подсчет ссылок в информатике1.2 Преимущества подсчета ссылок1.3 Недостатки подсчета ссылок1.4 Методы улучшения подсчета ссылок1.5 Интерпретация графа1.6 Борьба […]

Подсчет ссылок

  • Подсчет ссылок в информатике

    • Метод хранения количества ссылок на ресурс  
    • Используется для освобождения объектов, которые больше не нужны  
  • Преимущества подсчета ссылок

    • Объекты восстанавливаются поэтапно, без длительных пауз  
    • Подходит для приложений реального времени и систем с ограниченной памятью  
    • Эффективен для управления ресурсами, не связанными с памятью  
  • Недостатки подсчета ссылок

    • Частые обновления снижают производительность  
    • Требует резервирования места для подсчета ссылок  
    • Не обрабатывает циклы объектов  
  • Методы улучшения подсчета ссылок

    • Использование слабых ссылок и алгоритма проверки меток  
    • Атомарные операции для параллельных настроек  
    • Объединение обновлений для снижения накладных расходов  
  • Интерпретация графа

    • Ориентированный граф с вершинами объектов и ребрами ссылок  
    • Удаление вершины аналогично сбору объекта  
  • Борьба с неэффективностью обновлений

    • Объединение нескольких обновлений в одно  
    • Метод Дойча-Боброва игнорирует ссылки в локальных переменных  
    • Метод Бейкера включает отложенные приращения  
    • Метод Леванони и Петранка объединяет избыточные обновления  
  • Параллельные настройки

    • Объединение обновлений устраняет необходимость в атомарных операциях  
    • Усовершенствованный алгоритм Леванони и Петранка работает с многопоточными приложениями  
  • Метод скрытого подсчета ссылок

    • Разработан Блэкберном и Маккинли в 2003 году  
    • Сочетает отложенный подсчет ссылок с копированием питомника  
    • Обеспечивает пропускную способность, сравнимую с самыми быстрыми копировальными системами  
  • Работа с эталонными циклами

    • Проектирование системы для избежания циклов  
    • Использование “слабых” ссылок для предотвращения циклов  
    • Разработка кода для явного удаления ссылок  
    • Автоматизация удаления ссылок с помощью объекта “владелец”  
    • Автоматическое обнаружение и сбор циклов с помощью отслеживающего сборщика мусора  
  • Различные формы подсчета ссылок

    • Взвешенный подсчет ссылок: присваивание веса ссылкам, отслеживание общего веса  
    • Подсчет косвенных ссылок: отслеживание источника ссылки, предотвращение преждевременного удаления объектов  
  • Примеры использования

    • Сбор мусора: отслеживание количества ссылок на объект, постепенное уничтожение объектов  
    • Компонентная объектная модель: подсчет ссылок для обеспечения совместимости между языками и системами  
    • C++: интеллектуальные указатели с подсчетом ссылок для автоматического управления объектами  
    • Какао: ручной подсчет ссылок, автоматический подсчет ссылок в iOS 5 и Mac OS X 10.7  
    • Delphi: автоматический сбор с использованием подсчета ссылок для встроенных типов  
  • Преимущества подсчета ссылок в Delphi

    • Оперативный сбор информации  
    • Отсутствие рекурсивных циклов  
    • Низкие затраты на размер кода  
    • Оптимизация использования локальных строк  
    • Интеграция в библиотечные процедуры  
  • Подсчет ссылок в других языках

    • GObject: атомарные операции, слабые ссылки  
    • Vala: подсчет ссылок на GObject, обработка строк с большим количеством копий  
    • Perl: подсчет ссылок, слабые ссылки  
    • PHP: подсчет ссылок, включение и выключение сбора циклов  
    • Python: подсчет ссылок, обнаружение и восстановление циклов  
    • Rust: типы Rc и Arc, отслеживание количества владельцев  
    • Squirrel: подсчет ссылок с определением цикла  
    • Swift: подсчет ссылок для экземпляров класса, слабые ссылки  
    • Tcl: подсчет ссылок для управления значениями, неизменяемость значений  
    • Xojo: подсчет ссылок, слабые ссылки  
  • Подсчет ссылок в файловых системах

    • Поддержка количества ссылок на блоки и файлы  
    • Освобождение файлов при достижении нуля ссылок  
    • Ссылки из каталогов и активных процессов  

Полный текст статьи:

Подсчет ссылок

Оставьте комментарий

Прокрутить вверх