我想将像NekoVM这样的虚拟机用于小型设备,但是为了构建它,它需要Boehm GC,但是那个小型设备没有那个GC的端口,所以我想知道是否有任何替代它,某些东西那可以用C代码完成吗?
我想将像NekoVM这样的虚拟机用于小型设备,但是为了构建它,它需要Boehm GC,但是那个小型设备没有那个GC的端口,所以我想知道是否有任何替代它,某些东西那可以用C代码完成吗?
我想说你最好的选择是将GC移植到你的平台上,为此有指示(libgc移植指令)。
此外,应该可以交换GC实现(NekoVM常见问题解答),请参阅vm / alloc.c文件。
编辑:
希望有用的额外链接:(未经测试)
我想说你最好的选择是将GC移植到你的平台上,为此有指示(libgc移植指令)。
此外,应该可以交换GC实现(NekoVM常见问题解答),请参阅vm / alloc.c文件。
编辑:
希望有用的额外链接:(未经测试)
也许你会更好 LUA,它有一个非常小但功能强大的虚拟机,内置了自己的垃圾收集器,可在支持ANSI标准C的任何平台上运行。只需稍加努力,您甚至可以在缺少标准输入和标准输出的机器上构建Lua 。我看到Lua在一个嵌入式设备上运行 小型LCD触摸屏,背面嵌有嵌入式CPU。 Neko是很好的工作,但我认为你会发现Lua一点都令人满意。
我可以推荐TinyGC(tinygc.sf.net) - 一个针对小型设备的BoehmGC的独立轻量级实现。它与BoehmGC v7 +完全API兼容(甚至更多,二进制兼容),但只实现了API的一小部分(但足以用于类似Java / GCJ的内存管理),并且没有自动线程和静态数据根注册。然而,后者可能需要做一些努力才能使NekoVM使用它(即调用GC_register_my_thread()和GC_add_roots())。
为了支持这一点,有一个VMKit(LLVM)演示文稿,它将Boehm GC显示为 可能的瓶颈 表现。
我的建议是为Neko写一个准确的GC,如果还不存在的话。我不会用驳船杆接触Boehm的GC ......