所以,我有几个问题要问我,我确实浏览了互联网,但没有太多可靠的答案。大多数博客文章会取消彼此,因为他们都赞扬了不同的东西,并有基准来“证明他们的观点”(我从来没有见过这么多矛盾生命中的基准)。
无论如何,我的问题是:
一些“奖励”问题:
我为你发动的这场文字风暴道歉! ♥
答案 0 :(得分:21)
Rubinius真的更快吗?
在大多数基准测试中,是的。
但基准是......愚蠢。应用程序是我们真正关心的。因此,最好的办法是对您的应用进行基准测试。看看它的表现如何。 Rubinius将在MRI上真正发光的两个领域是并行性和平行性。内存使用情况。 Rubinius没有GIL,所以你可以利用所有可用的线程。它还有更多sophisticated GC,所以一般来说它可以在GC方面表现更好。
我在2011年10月为my talk on MagLev at RubyConf
做了那些基准测试EventMachine是否与Rubinius一起使用?
是的,如果有部分不起作用,则应报告该问题。话虽如此,currently EM测试不会传递任何Ruby实现。
C扩展是否适用于Rubinius?
是。我维持compatibility issue for C-exts,所以如果你有一个在Travis上测试过,那么Rubinius希望看到它对抗rbx。 Rubinius历来对C-api和C-exts有很好的支持,但如果有一天Rubinius能够如此快地运行Ruby 那么将会很好。不需要C-exts或C-api。< / p>
C-Ruby(2.0 +,YARV)是否会摆脱GIL?或者至少修改它以便CRuby支持真正的并行性?
不,很可能不是。来自RubyConf 2012的线程的Matz意见(或缺乏)的Jesse Storimer has a succinct writeup .Koichi Sasada试图移除GIL一次并且MRI性能刚刚消失。 Evan Phoenix在创造Rubinius之前也尝试了一次,但没有取得好成绩。
什么是mruby?
一个可嵌入的Ruby解释器,类似于Lua。 Matt Aimonetti有一个few articles,可能会为你提供一些启示。
答案 1 :(得分:4)
我对Ruby不太满意,但我可以回答第一个问题。
Rubinius真的更快吗?
我见过不同的基准,讲述不同的事情。然而,Rubinius部分用Ruby编写的事实并不一定意味着它更慢。我对Python中Python的PyPy也有同样的看法。经过一些研究和大学合适的课程,我知道为什么。
顺便说一下。为同一语言的语言编写翻译也是一种常见的学术实践,以显示语言的强大程度。在一个类中,我们在Lisp中用Lisp编写了Lisp。