所以,我有几个问题要问,我确实浏览了互联网,但没有太多可靠的答案。大多数博客文章会相互抵消,因为它们都赞扬了不同的事物并且有基准来“证明他们的观点”(我一生中从未见过这么多相互矛盾的基准)。
无论如何,我的问题是:
- 鲁比尼乌斯真的更快吗?这个明显诚实的亲鲁比尼乌斯的演讲给我留下了深刻的印象。让我有点困惑的另一件事是,很多 Rubinius 是用 Ruby 本身编写的,但不知何故它比 C-Ruby 更快?那么,它一定是该语言的一个非常好的实现!
- EventMachine 可以与 Ruinius 一起使用吗?据我所知,EventMachine 部分依赖于 Fibers(如果我错了,请纠正我),直到 1.9 才实现。我知道 Rubinius 最终也会支持 1.9。我不介意稍等。
- C 扩展在 Rubinius 中有效吗?我编写了一个 C 扩展,它将从 TCP 流接收到的二进制消息“序列化”为 Ruby 对象,反之亦然(我认为细节并不重要,但如果它有助于回答这个问题,我会更新帖子)。这可能是很多消息!我设法用 Ruby 编写了相同的代码(尽管一个月后它变得毫无意义),但事实证明它是应用程序中的一个真正瓶颈。所以,我不得不使用 C 作为我的问题的“解决方案”。 编辑:我只记得,我将 C 用于另一项任务,它是数组的命中测试方法。基本上它只是检查一个“点”是否在一个多边形内,在 CRuby 中它是不可能慢的。
- 如果之前的答案是“否”,那么 Rubinus 中是否有 C 扩展的替代方案?我收集 VM 是用 C++ 编写的,所以那样。
一些“奖励”问题:
- C-Ruby(2.0+,YARV)会摆脱 GIL 吗?或者至少修改它以使 CRuby 支持真正的并行性?
- mruby到底是什么?我看到 matz 正在研究它,就描述而言,它看起来非常棒。它与 CRuby(性能方面)有何不同?
我为我向你发动的这场文字风暴道歉!♥