2

Rails アプリケーションをホストするプラットフォームとして、オフィスで JRuby を推進することに関心があります。

しかし、それはどれほど信頼できますか?

そのパフォーマンスは MRI 1.8.7 より優れていますか?

JRuby 1.5 は Ruby 1.8.7 と 100% 互換性があると述べていますが、これは JRuby が任意のRuby/Rails コードを実行できるということですか?

4

5 に答える 5

4

はい、JRuby は信頼できます。Oracle は JRuby を Oracle ミックス ( http://mix.oracle.com/ ) に使用し、Sun は JRuby を Kenai ( http://kenai.com ) に使用しました。 : "Java.net ドメインを Kenai インフラストラクチャに移行する作業が進行中です")!!

ほぼすべてのコードを実行できます。一部の gem はネイティブ C 拡張機能を使用し、JRuby にはそれに対する基本的なサポートがありますが、はい... Rails は機能します。

Rails アプリを .war ファイル内にラップする Warbler を使用して、Tomcat や JBoss などのアプリケーション サーバーに Rails アプリをデプロイできます。

更新: ここで多くのベンチマークを見ることができます: http://programmingzen.com/2010/07/19/the-great-ruby-shootout-july-2010/

于 2010-08-18T18:39:53.843 に答える
2

私は現在、多くの jruby 作業を行っていますが、jruby インタープリターの下では Rails が確かに実行可能なオプションであると言えます。私は非常に満足しており、私の場合は多くのネイティブ Java ライブラリを使用する必要があるため、jRuby はその Java コードの素晴らしいラッパーです。私はいくつかの技術的な課題を抱えており、解決されたものもあれば、まだ解決されていないものもあります.

  1. 単体テスト: jvm をスプールしてからレールをスプールするのに時間がかかるため、テストの実行に時間がかかります - 解決策、jvm を実行し続けるネイルガンのようなものになる可能性があります
  2. 展開: Tomcat のフレーバーで、ウグイスが動作するようになりませんでした。これは私たちにとって大きな問題です。
  3. ライブラリを選択してください。一部の c 拡張機能は機能しますが、すべてが同等に互換性があるわけではありません。

興味があれば、 http: //pragprog.com にある Pragmantic Programmers のベータ版の jruby ブックを強くお勧めします。

于 2010-08-18T19:00:08.693 に答える
2

JRubyロックス!! 単純な理由は、その移植性機能と Java ライブラリとの統合です。私は個人的に Netbeans と一緒に使用しており、それに付随する高速デバッガーは非常に便利に思えます。さらに、ネイティブ ビルド エラーとその処理を見たくありません。JRuby 用にダウンロードしたこれらすべての gem は、どのプラットフォームでも 100% 動作します。JRuby を使用すると、Java のプラットフォームに依存しないという利点を簡単に取り入れることができます。

さらに、JRuby は CRuby のようにグリーン スレッドの代わりに OS スレッドを使用するネイティブ スレッドを使用します (ただし、最新バージョンではそうではないと思います)。

GistでJRubyへ!!

于 2010-08-18T18:43:19.387 に答える
0

Windows の場合、大量のデータを扱う場合、MRI よりもはるかに安定していることがわかりました。ウィンドウにはまだいくつかのバグがありますが、実際には回避可能です。お勧め。

于 2010-08-19T00:04:35.620 に答える
0

免責事項: 私は日常業務で jruby を使用していません。jruby を使用して既存のコードを実行してみました。

すべてのコードが正常に実行されるという意味ではありません。たとえば、jrubyは実際にはサポートしていませんが、現在 bioruby はjruby で fork を呼び出しています。(これは jruby のバグというよりは bioruby のバグです)

ただし、そのような動作を「信頼できない」とは呼びません。墜落どころか、地面から離陸しない飛行機のようにフェイルセーフです。

于 2010-08-19T00:04:50.597 に答える