Алгоритмы параллельной сборки мусора

Алгоритмы параллельной сборки мусора

Для получения полного решения проблемы работы в стартстопном режиме крайне привлекательно выделить сборщику мусора отдельный поток выполнения, конечно, при условии поддержки многозадачности операционной системой. Этот прием известен, как сборка мусора "на лету" (on-the fly) или параллельная.

Во время сборки мусора на лету выполнение ОО-системы использует два отдельных потока (часто соответствующих двум отдельным процессам операционной системы): приложение и сборщик. Только приложение выделяет память объектам с помощью инструкций создания; только сборщик освобождает память с помощью reclaim операций.

Сборщик будет работать непрерывно, повторяя фазу пометки и следом фазу чистки для обнаружения и удаления недостижимых объектов.

Отдельные потоки не обязательно должны быть отдельными процессами. Они могут быть, во избежание дополнительных расходов на переключение между процессами или даже потоками, плоскими сопрограммами. (Подробнее сопрограммы будут рассмотрены в лекции 12 курса "Основы объектно-ориентированного проектирования", рассматривающей "параллелизм")

Даже при этих условиях сборка мусора на лету на практике имеет неудовлетворительную полную производительность. Это печально, поскольку сам метод достаточно хорош, особенно при условии использования алгоритма Дейкстры (см. библиографическую ссылку).

По моему мнению (мой комментарий отражает надежду, а не научно установленный результат) параллельная сборка мусора - решение будущего, требующее кооперации с аппаратными средствами. Вместо того, чтобы воровать время у процессора, выполняющего приложение, сборка мусора должна управляться отдельным процессором, предназначенным только для решения этой задачи и сконструированным так, чтобы как можно меньше влиять на процессор(ы), работающие с приложением.

Эта идея требует изменения доминирующей аппаратной архитектуры и, вероятно, вряд ли найдет скорое применение. Я надеюсь, что ответом на иногда задаваемый вопрос -

"Какой тип аппаратного обеспечения наиболее пригоден для объектной технологии?" -

первым пунктом в списке пожеланий будет наличие отдельного процессора для сборки мусора.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

4. Пакеты (сборки) системы Tor

Из книги автора

4. Пакеты (сборки) системы Tor Программное обеспечение Tor разрабатывается для различных операционных систем: - ОС семейства Microsoft Windows - ОС семейства Linux/Unix- ОС Apple- и для смартфонов (ОС Android, iPhone, iPad и др.)Для каждой из операционных систем существуют различные варианты


6.14.5 Тайм-аут сборки датаграммы

Из книги автора

6.14.5 Тайм-аут сборки датаграммы Рассмотрим следующую последовательность событий:? Пересылается датаграмма.? Пославший ее процесс аварийно завершается.? Датаграмма фрагментируется при пересылке.? По пути следования теряется один из фрагментов.При потере отправленного


Усилитель с общим эмиттером с параллельной обратной связью по напряжению

Из книги автора

Усилитель с общим эмиттером с параллельной обратной связью по напряжению В качестве примера, относящегося уже не к колебательному контуру, а к усилителю, на рис. 4.18 показана упрощенная гибридная ?-модель для усилителя ОЭ с параллельной обратной связью по напряжению. Рис.


Трехкаскадный усилитель с параллельной обратной связью по напряжению

Из книги автора

Трехкаскадный усилитель с параллельной обратной связью по напряжению Теперь рассмотрим более значительное изменение. Включим резистор обратной связи Rf=5 кОм между узлами 8 и 2 (то есть между коллектором последнего и базой первого каскадов). Это приведет к созданию


1.22. Создание окончательной сборки

Из книги автора

1.22. Создание окончательной сборки ПроблемаВы хотите создать небольшой быстрый исполняемый файл или динамическую библиотеку, предназначенные для распространения среди покупателей.РешениеВ основном для получения окончательной сборки требуется:• включить


Активизация сборки мусора

Из книги автора

Активизация сборки мусора Итак, сборщик мусора в .NET призван управлять памятью за вас. Однако в очень редких случаях, перечисленных ниже, бывает выгодно программно активизировать начало сборки мусора, используя дня этого GC.Collect().• Перед входом приложения в блок


2.2.8.4 Утилита параллельной загрузки

Из книги автора

2.2.8.4 Утилита параллельной загрузки Утилита параллельной загрузки способна параллельно считывать данные из нескольких источников, ускоряя за счет этого процедуры загрузки и выгрузки данных. Предоставляемый ею графический интерфейс позволяет администратору базы


Краткая схема сборки

Из книги автора

Краткая схема сборки В принципе, вы можете собирать компьютер в той последовательности, в какой пожелаете. Мало того, в зависимости от размеров и конфигурации корпуса, а также размера материнской платы очередность операций может варьироваться. Иногда проще сначала


Что нужно помнить при параллельной установке ОС

Из книги автора

Что нужно помнить при параллельной установке ОС Рассмотрим ситуацию, когда вы долго и успешно пользуетесь какой-либо операционной системой, хотите вдруг попробовать в деле Windows XP, но и от старой привычной системы отказываться не собираетесь. О чем нужно помнить в этом


Механизм сборки мусора

Из книги автора

Механизм сборки мусора Сборщик мусора (garbage collector) - это функция исполнительной системы (runtime system) языка программирования. Сборщик мусора выполняет обнаружение и утилизацию недостижимых объектов, не нуждаясь в управлении приложением, хотя приложение может иметь в своем


Основа сборки мусора

Из книги автора

Основа сборки мусора Рассмотрим работу сборщика мусора.Основной алгоритм включает две фазы: пометка и чистка. Фаза пометки, начиная с оригиналов, рекурсивно следует ссылкам, проходит активную часть структуры и помечает как достижимые все встреченные объекты. Фаза


Практические проблемы сборки мусора

Из книги автора

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


Механизм сборки мусора

Из книги автора

Механизм сборки мусора Приведем схему алгоритма, используемого сборщиком мусора.Решение представляет собой не единственный алгоритм, а основано на комбинации основных алгоритмов, часть из которых используется совместно, часть - независимо друг от друга. Каждая