Аппаратная сборка мусора - PullRequest
28 голосов
/ 12 февраля 2009

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

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

Это то, что сделал LISP Machines? Было ли какое-либо дальнейшее исследование этой идеи? Это слишком специфично для домена?

Мысли? Возражения? Обсудить.

Ответы [ 11 ]

0 голосов
/ 12 февраля 2009

С чего бы это "ускорять ход вещей"? Что именно должно делать оборудование? Он по-прежнему должен обходить все ссылки между объектами, что означает, что он должен проходить через большой кусок данных в основной памяти, что является основной причиной, почему это занимает время. Что бы вы получили от этого? Как вы думаете, какую конкретную операцию можно выполнить быстрее с помощью аппаратной поддержки? Большая часть работы в сборщике мусора заключается в том, чтобы просто следовать указателям / ссылкам и иногда копировать живые объекты из одной кучи в другую. чем это отличается от инструкций, которые уже поддерживает процессор?

С учетом вышесказанного, почему, по вашему мнению, нам нужно ускорить сборку мусора? Современный GC уже может быть очень быстрым и эффективным до такой степени, что это в основном решенная проблема.

...