Cтраница 3
Отсюда мы можем видеть, до какой степени неэффективен сбор мусора, когда память становится полной, И соответственно, насколько он эффективен, когда требования к памяти невелики. [31]
Таким образом, рассмотренное явление приводит к тому, что сбор мусора вызывает большее дробление памяти, чем это необходимо. [32]
В настоящее время используются следующие способы мусороудаления: 1) сбор мусора в дворовых металлических мусоросборниках с последующим вывозом его специальными машинами - мусоровозами; 2) сбор мусора в дворовых мусорных ящиках или помойницах с еженедельной или ежемесячной очисткой последних; 3) специальная система мусоропроводов, позволяющая транспортировать мусор с верхних этажей здания в мусорные камеры, расположенные в подвале или на первом этаже, откуда мусор вывозят автомашинами. [33]
Такую схему можно представить себе следующим образом: вне механизма сбора мусора создается буфер объектов, который предохраняет систему от засорения во время высокой активности использования объектов. Эта схема очень хорошо разгружает сборщик мусора в периоды высокой активности. В периоды низкой активности сборщик мусора не испытывает трудностей. [34]
При выборе типа уплотняющего и разгрузочного устройства необходимо учитывать условия сбора мусора, его состав и среднюю плотность, принятые методы утилизации и обезвреживания, а также условия разгрузки. [35]
Кроме неприятной потери одного бита в каждом узле, трудность метода сбора мусора заключается в том, что он крайне медленно работает, когда загрузка памяти почти достигает предела; в таких случаях количество свободных ячеек, полученных с помощью процесса сбора, не окупает затраченных на это усилий. Те программы, которым не хватает памяти ( а это происходит со многими неотлаженными программами. Эту проблему можно частично решш, позволив программисту указывать число к, и если на этапе сбора мусора найдено не более k свободных узлов, то работа программы прекращается. [36]
Эта система сочетает в себе лучшие качества баковой и контейнерной систем: сбор мусора производится в большие емкости, разгрузка их механизирована, мусор в кузове уплотняется. [37]
В классе может быть определен деструктор, который активизируется при выполнении процедуры сбора мусора ( освобождения неиспользуемых ресурсов), если экземпляр доступен для этого процесса. Задача деструктора состоит в освобождении неуправляемых ресурсов: файловых потоков, сетевых подключений, соединений с базами данных и т.п. Если неуправляемые ресурсы отсутствуют, то необходимость в деструкторе не возникает. [38]
Куча используется для выделения блоков переменного размера, и при исчерпании свободного пространства выполняется сбор мусора с полным уплотнением ( см. разд. [39]
Проанализировав наихудший случай, определите максимальный размер стека, требуемого для маркировки во время сбора мусора при использовании простого стекового алгоритма из разд. Считайте, что в элементе кучи могут находиться самое большее 2 указателя на другие элементы кучи, что число внешних указателей внутрь кучи не превосходит / и что в куче имеется память ровно для N элементов. Какую память нужно зарезервировать для стека, чтобы гарантировать возможность выполнения сбора мусора без переполнения стека. [40]
После того, как алгоритм маркировки отметил активные элементы, все остальные элементы, бит сбора мусора которых включен, рассматриваются как мусор и могут быть возвращены в список свободного пространства. [41]
Элементы данных размером в полное слово, такие, как числа, ставят перед процедурой сбора мусора особые проблемы. Обычно эти данные целиком занимают элемент кучи, не оставляя дополнительных битов для маркировки. В таких случаях чаще всего элементы размером в полное слово выносят в специальную часть кучи, а все биты сбора мусора для этих элементов записывают в специальный упакованный массив ( битовый вектор), расположенный за пределами кучи. [42]
В отличие от частичного уплотнения полное уплотнение нужно трактовать как особую процедуру так же, как сбор мусора. Вычисления должны приостанавливаться на время уплотнения. Полное уплотнение обладает и другими характерными чертами процедуры сбора мусора ввиду необходимости отмечать активные элементы кучи. Вероятно, проще всего объединить оба действия, применяя единую процедуру маркировки, вслед за которой выполняется уплотнение и переустановка указателей. Одновременно отыскивается и уплотняется мусор. Такой метод используется во многих реализациях Снобола 4 и заслуживает более детального рассмотрения. [43]
Съемный вращающийся барабан емкостью 14 - 23 ма смонтирован на специальной раме и доставляется к месту сбора мусора автомобилем со съемно-подъемным гидравлическим устройством. Автомобиль опускает барабан на землю, при этом он задней частью опирается на два колеса, а в передней части касается рамой земли. Барабан пригоден для загрузки любого мусора, включая бумажные, картонные и пластмассовые мусоросборники с мусором; для крупных предметов и тары имеется большое загрузочное отверстие. [44]
Поскольку сбор мусора происходит редко ( только если исчерпается список свободного пространства), то процедуре сбора мусора позволительно быть довольно Дорогостоящей. [45]