いくつか質問があります。インターネットを閲覧しましたが、信頼できる回答はあまりありませんでした。ほとんどのブログ投稿は、お互いに異なることを賞賛し、「自分の見解を証明する」ためのベンチマークを持っていたため、互いに打ち消し合っていました (人生でこれほど多くの矛盾するベンチマークを見たことがありません)。
とにかく、私の質問は次のとおりです。
- ルビニウスは本当に速いですか?私は、この明らかに正直な親ルビニウスのプレゼンテーションにかなり感銘を受けました。私を少し混乱させるもう 1 つのことは、多くの Rubinius が Ruby 自体で書かれているにもかかわらず、どういうわけか C-Ruby よりも速いということです。それなら、言語の非常に優れた実装に違いありません!
- EventMachine は Ruinius で動作しますか? 私の知る限り、EventMachine は 1.9 まで実装されていなかったファイバーに部分的に依存しています (間違っていたら訂正してください)。Rubinius がいずれ 1.9 もサポートすることはわかっています。少し待っても構いません。
- C 拡張機能は Rubinius で動作しますか? TCP ストリームから受信したバイナリ メッセージを Ruby オブジェクトに、またはその逆に「シリアル化」する C 拡張機能を作成しました (詳細は重要ではないと思いますが、この質問への回答に役立つ場合は、投稿を更新します)。これはたくさんのメッセージになる可能性があります!私は Ruby で同じコードを書くことができました (ただし、1 か月後にはほとんど意味がありませんでした) が、アプリケーションの本当のボトルネックであることが判明しました。そのため、問題の「解決策」として C を使用する必要がありました。 編集:私はちょうど思い出しました、私は別のタスクに C を使用します。これは配列のヒット テスト メソッドです。基本的には、「ポイント」がポリゴン内にあるかどうかをチェックするだけで、CRuby では信じられないほど遅かったです。
- 前の答えが「いいえ」だった場合、Rubinus に C 拡張機能の代替手段はありますか? VM は C++ で記述されているので、そのようにします。
いくつかの「おまけ」の質問:
- C-Ruby (2.0+、YARV) は GIL を取り除く予定はありますか? または、少なくともそれを変更して、CRuby が真の並列処理をサポートするようにしますか?
- mrubyとは正確には何ですか? 私は matz がそれに取り組んでいるように見えます。CRuby との違い (パフォーマンス面) は?
私があなたに解き放ったこのテキストストームをお詫びします!♥