Сбор мусора (информатика)
-
Основы сборки мусора
- Сборка мусора — это процесс автоматического освобождения памяти, занятой объектами, которые больше не используются.
- Сборщики мусора отслеживают доступ к памяти и освобождают объекты, которые не используются активно.
-
История и эволюция
- Сборщики мусора были впервые разработаны в 1959 году для языка программирования Lisp.
- В 1960-х годах были разработаны первые коммерческие сборщики мусора для операционной системы Unix.
- В 1970-х годах сборщики мусора стали широко использоваться в коммерческих и академических средах.
- В 1980-х годах появились первые сборщики мусора для динамических языков, таких как BASIC и Lisp.
-
Стратегии и алгоритмы
- Трассировка — это наиболее распространенный метод, который отслеживает доступ к памяти.
- Подсчет ссылок — это метод, который подсчитывает количество ссылок на объект и освобождает память при их обнулении.
- Escape-анализ — это метод, который преобразует распределение кучи в распределение стека для сокращения объема сборки мусора.
-
Языки программирования и сборщики мусора
- Большинство языков программирования высокого уровня имеют встроенную сборку мусора.
- Некоторые языки, такие как C++ и Delphi, используют деструкторы вместо сборки мусора.
- BASIC и Logo использовали сборку мусора для оптимизации управления памятью.
- Objective-C и iOS использовали сборку мусора до 2007 года, но затем перешли на ARC.
-
Ограниченные среды и сборщики мусора
- Во встроенных системах и системах реального времени сборка мусора редко используется из-за необходимости жесткого контроля ресурсов.
- Существуют сборщики мусора, совместимые с ограниченными средами, такими как .NET Micro Framework и Java Platform, Micro Edition.
-
Сборщики мусора во время компиляции
- Сборка мусора во время компиляции позволяет повторно использовать и восстанавливать память на основе известных инвариантов.
- Автоматический счетчик ссылок LLVM (ARC) широко используется в экосистеме Apple.
-
Сборщики мусора в реальном времени
- Инкрементные, параллельные и работающие в реальном времени сборщики мусора разработаны для работы в жестких условиях реального времени.
- Алгоритм Бейкера и другие схемы сбора мусора основаны на эмпирических наблюдениях о смертности объектов.
-
Рекомендации и дальнейшее чтение
- В статье приведены ссылки на дополнительные ресурсы и литературу по сборке мусора.
Полный текст статьи: