主要的 Ruby VM 的优点/缺点是什么(比如功能、兼容性、性能和怪癖?我知道还有一些额外的功能,比如能够通过JRuby使用Java接口。这些也有助于注意。此时是否有任何 VM 具有明显的优势,在哪些情况下
我用过Matz的Ruby和JRuby,它们解决了不同的任务。 如果你正在开发一个直接的Ruby或Rails应用程序,那么这可能就足够了,但如果有一些强大的Java库会有很大帮助,那么JRuby可能是值得的。
我没有做任何过于复杂的事情,但JRuby似乎非常匹配,至少在实现核心语言功能方面(我还没有遇到任何差异,但它们可能存在)。
我想分享一个小轶事...我正在编写一个脚本来与 DB2 数据库进行交互。 Ruby 中的 DB2 支持非常糟糕...您必须安装整个 DB2 Express 版本才能编译 Ruby 驱动程序,这甚至对我不起作用。 我受够了,改用JRuby,使用JDBC和一些小的DB2 JDBCjar。 它完美地解决了我的问题。 重点? 好吧,如果访问某些Java库可以简化手头的问题,那么一定要去吧!
我希望这是有帮助的! 抱歉,我对其他虚拟机没有任何经验....
我读过的另一个警告,但我不太了解细节......JRuby 我认为支持通过 Java 线程进行线程处理,而不是 Matz 实现中支持的"绿色"线程......因此,如果您想在多核系统上实现多线程,JRuby 可能会为您提供更好的服务......除非你想在 C 中进行线程处理。
以下是我在主要虚拟机上搜索的一些信息:Ruby MRI,Ruby 1.9(YARV),JRuby,XRuby,Rubinius和IronRuby
去年有一个性能基准测试比较了主要的虚拟机,但随着虚拟机开发的速度,它可能在今天不那么重要了。Ruby 1.9 通常是最快的,我相信目前仍然比 JRuby 有优势。
目前有四个虚拟机能够运行Ruby on Rails:Ruby MRI,Ruby 1.9,JRuby和Rubinius。
XRuby在JVM上运行,JRuby也是如此,并将Ruby源文件编译为Java.class。
IronRuby在.NET上运行,利用他们的DLR,并允许您将Ruby与.NET库和基础设施集成。它还不能运行Ruby on Rails。
还有一个名为HotRuby的VM,可让您在浏览器或Flash中运行Ruby源代码。