Использует ли язык программирования D инкрементный сборщик мусора? - PullRequest
12 голосов
/ 26 марта 2012

Страница на сборщике мусора не указывает, использует ли D инкрементный сборщик мусора или версию "останови мир". В нем упоминается пауза несколько раз, что может быть подсказкой для сборщика мусора, останавливающего мир, но я не уверен.

Если он не использует инкрементный сборщик мусора, есть ли для этого особые причины? GC «останови мир» доставляет неудобства интерактивным приложениям.

1 Ответ

13 голосов
/ 26 марта 2012

Текущие реализации ( Druntime ) используют сборщик мусора stop-the-world , но сам язык не накладывает много ограничений на детали реализации.

Существует параллельный сборщик мусора для D, CDGC , для * nix-подобных ОС (используется разветвление).

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

...