Techioz Blog

Rubinus または MRI 1.9.3 (YARV)?

概要

それで、いくつか質問したいことがあります。インターネットを閲覧しましたが、信頼できる答えはあまりありませんでした。ほとんどのブログ投稿は、お互いに異なるものを賞賛し、「自分たちの見解を証明する」ためのベンチマークを持っていたため、お互いを打ち消し合うものでした(これほど多くの矛盾するベンチマークを人生で見たことがありません)。

とにかく、私の質問は次のとおりです。

いくつかの「おまけ」の質問:

このようなテキストの嵐をあなたに引き起こしたことをお詫びします。 ♥

解決策

ほとんどのベンチマークでは、そうです。

(出典: google.com)

(出典: google.com)

しかし、ベンチマークは…愚かです。私たちが本当に重視しているのはアプリです。したがって、アプリのベンチマークを実行して、そのパフォーマンスがどの程度優れているかを確認するのが最善の方法です。 Rubinius が MRI よりも優れている 2 つの領域は、並列処理とメモリ使用量です。 Rubinius には GIL がないため、利用可能なすべてのスレッドを利用できます。また、より高度な GC も備えているため、一般に GC に関してパフォーマンスが向上します。

これらのベンチマークは、2011 年 10 月に RubyConf での MagLev に関する講演のために実行しました。

はい、動作しない部分がある場合は、問題を報告する必要があります。そうは言っても、現時点では EM テストは Ruby 実装に合格しません。

はい。私は C-exts の互換性の問題を管理しているので、Travis でテストされているものがあれば、Rubinius はそれが rbx に対して合格することを望んでいます。 Rubinius は歴史的に C-api と C-exts を適切にサポートしていましたが、いつか Rubinius が C-exts や C-api を必要としないほど高速に Ruby を実行できるようになれば素晴らしいでしょう。

いいえ、おそらくそうではありません。 Jesse Storimer は、RubyConf 2012 のスレッドに関する Matz の意見 (または意見の欠如) を簡潔にまとめています。 笹田耕一は一度 GIL を削除しようとしましたが、MRI の性能は低下しました。エヴァン・フェニックスもルビニウスを作る前に一度挑戦したが、良い結果は得られなかった。

Lua に似た、埋め込み可能な Ruby インタープリター。 Matt Aimonetti が、あなたのために光を当てるかもしれない記事をいくつか紹介しています。