Какие альтернативы Hans Boehm GC существуют для небольших устройств? - PullRequest
11 голосов
/ 08 января 2009

Я бы хотел использовать виртуальную машину, такую ​​как NekoVM, в маленьком устройстве, но для его сборки требуется Boehm GC, однако нет порта этого GC для этого небольшого устройства, поэтому мне было интересно, есть ли альтернатива это что-то, что может быть сделано исключительно с кодом C?

Ответы [ 5 ]

4 голосов
/ 12 января 2009

Я бы сказал, что лучшим вариантом будет перенести GC на вашу платформу, для которой есть инструкции ( инструкции по переносу libgc ).

Кроме того, должна быть возможность заменить реализацию GC ( Часто задаваемые вопросы NekoVM ), см. Файл vm / alloc.c.

EDIT

Надеемся, полезные дополнительные ссылки: (не проверено)

3 голосов
/ 20 декабря 2009

Я мог бы предложить TinyGC (tinygc.sf.net) - независимую облегченную реализацию BoehmGC, предназначенную для небольших устройств. Он полностью совместим с API (более того, двоично) с BoehmGC v7 +, но реализован только небольшой набор API (но этого достаточно для управления памятью, подобной Java / GCJ), и нет автоматической регистрации потоков и корней статических данных. Последнее, однако, может потребовать некоторых усилий, чтобы заставить NekoVM работать с ним (то есть вызвать GC_register_my_thread () и GC_add_roots ()).

3 голосов
/ 08 января 2009

Возможно, вам будет лучше с Lua , который имеет очень маленькую, но мощную виртуальную машину, имеет встроенный сборщик мусора и работает на любой платформе, поддерживающей стандарт ANSI C. Приложив немного усилий, вы даже можете собрать Lua на машине, у которой нет стандартного ввода и стандартного вывода. Я видел, как Lua работает на встроенном устройстве с небольшим сенсорным ЖК-дисплеем со встроенным процессором, прикрепленным сзади . Неко - хорошая работа, но я думаю, что Lua вы найдете во всех отношениях удовлетворяющим.

2 голосов
/ 19 января 2009

Для поддержки этого существует презентация VMKit (LLVM), где они показывают Boehm GC как вероятное узкое место для производительности.

1 голос
/ 25 сентября 2010

Мой совет - написать точный GC для Neko, если он еще не существует. Я не стал бы трогать БК с помощью баржовой шесты ...

...