更新时间:2024-02-06 00:29
Rubinius是一个主要用Ruby语言实现的Ruby虚拟机。
Rubinius,它的底层实现包括少量C,不过这部分也会在将来用Ruby来重写。
·・它是基于字节码的,这意味着它能够很好的解决性能问题。
・它是可插拔的,架构非常的干净,这意味着诸如垃圾回收和对象内存等问题,能够转换使用另一种算法。
・它被设计成线程安全的(尽管还没有达到真正的线程安全),并能支持多个虚拟机。
・它可以与现有的MRI扩展一起工作。
・大部分的代码用Ruby编写。
・它能够给你直接从Ruby代码,访问所有内部结构的能力(比如MethodContexts/BlockContexts等)。
・这个项目使用Valgrind(一套调试、分析Linux程序的工具)来保证编写的C代码万无一失。
Rubinius正在赢得越来越多的支持,许多Ruby VM的开发者都坚信它前途不可限量。
理由之一是它的模块化设计及其展现内部结构的方式。对于新上手的开发人员而言,Rubinius的内省机制(introspection)是一项很体贴的设计。在Ruby中,我们已经可以很方便得通过诸如obj.methods(返回obj的方法列表)的方式观察Ruby类。而Rubinius则做得更上一层楼,你甚至可以访问代表代码数据结构的抽象语法树(Abstract Syntax Tree,AST)。Rubinius使用ParseTree,通过标记和嵌套列表展现其结构。