c garbage-collection neko

¿Qué alternativas a Hans Boehm GC existen para dispositivos pequeños?



garbage-collection neko (5)

Me gustaría utilizar una máquina virtual como NekoVM en un dispositivo pequeño, pero para construirlo, requiere Boehm GC, sin embargo, no hay puerto de ese GC para ese pequeño dispositivo, así que me preguntaba si hay alguna alternativa, algo que podría hacerse exclusivamente con código C?


Tal vez sería mejor que Lua , que tiene una máquina virtual muy pequeña pero poderosa, tiene su propio recolector de basura integrado, y se ejecuta en cualquier plataforma que admita ANSI estándar C. Con solo un poco de esfuerzo puede incluso construir Lua en una máquina que carece de entrada estándar y salida estándar. He visto a Lua corriendo en un dispositivo integrado que era una pequeña pantalla táctil LCD con una CPU incrustada pegada en la parte posterior . Neko es un buen trabajo, pero creo que encontrarás a Lua igual de satisfactoria.


Para respaldar esto, hay una presentación de VMKit (LLVM) donde muestran a Boehm GC como un posible cuello de botella para el rendimiento.


Podría sugerir TinyGC (tinygc.sf.net) - una implementación liviana e independiente de BoehmGC dirigida a dispositivos pequeños. Es totalmente compatible con API (incluso más, compatible con binarios) con BoehmGC v7 + pero solo se implementa un pequeño subconjunto de la API (pero suficiente para la gestión de memoria similar a Java / GCJ) y no hay subprocesos automáticos y registro de raíces de datos estáticos. Este último, sin embargo, puede requerir algunos esfuerzos para hacer que NekoVM trabaje con él (es decir, llame a GC_register_my_thread () y GC_add_roots ()).


Mi consejo es escribir un GC preciso para Neko si aún no existe uno. No tocaría la GC de Boehm con una pértiga de gabarra ...