2008-08-25 10 views
7

私の会社がついに内部使用を祝福したので、私は最初のRubyアプリケーションを開発したいと思っています。Rubyの性能

私がRubyについてv1.8まで読んだことは、パフォーマンスについては何も肯定的なことはありませんが、バージョン1.9については何も見つかりませんでした。私が最後に見た1.8の数字は、そこのすべてのものよりも大幅に遅かったので、これが1.9で取り上げられることを期待しています。

パフォーマンスが大幅に向上しましたか? Rubyのアプリケーション(または避けるべきもの)を使ってパフォーマンスを可能な限り最高に保つために、具体的なことがいくつかありますか?

答えて

8

も参照してください。全体として、ほとんどの場合、1.9は非常に高速です。

2

Matz ruby​​ 1.8.6はパフォーマンスが向上し、1.9とJRubyは速度を上げるために非常に時間がかかります。しかし、パフォーマンスはそれがあなたがWebアプリケーションで望む何かをすることを妨げるようなものではありません。 Ruby on Railsサイトには、「より遅く解釈される」言語でうまくいくものがたくさんあります。 Webアプリケーションをスケールアウトするときは、作成する言語の速度よりも多くのパフォーマンス上の問題があります。

4

スケーラビリティとパフォーマンスが非常に重要な場合は、Ruby Enterprise Editionも参照してください。 Rubyインタプリタのカスタム実装です。メモリの割り当てやガベージコレクションについては、はるかに優れているはずです。私はそれをJRubyと直接比較する客観的な指標は見ていませんが、私が聞いたすべての証拠は非常に良いものでした。

これはPassenger (aka mod_rails)を作成した同じ会社のものです。JRubyルートに移動しないと決めた場合は、レール展開ソリューションとして必ずチェックアウトしてください。

0

アディソンウェズリープロフェッショナルから「効率的なRubyのコードを記述する」チェックアウト:

http://safari.oreilly.com/9780321540034

私はこの短い作品では、いくつかの非常に有用かつ興味深い洞察を発見しました。無料の10日間のトライアルにサインアップすると、無料で読むことができます。 (これは50ページと裁判はあなた(AFAIR)100ページビューを取得します。)

https://ssl.safaribooksonline.com/promo

0

私は、Rubyプログラマではないが、私は最近、かなりしっかりとJRubyの展開に関与しているので、いくつかの結論を引き出すことができます。 JRubyのパフォーマンスはあまり期待しないでください。解釈モードでは、C Rubyの範囲のどこかにあるようです。 JITモードは高速ですが、理論的にのみです。実際には、中規模のサーバー(デュアルコア、8GB RAM)のRailsアプリケーションのために、GlassfishでJITモードを試しました。そして、真実は、JITtingがそうだったfreakingly多くの時間、それは最初の要求に答える前に20-30分を必要とするサーバー。メモリ使用量は天文学的なもので、システム全体がプロファイラを取り付けた状態で停止するため、プロファイリングは機能しませんでした。

ボトムライン:JRubyのメリット(マルチスレッド、ソリッド・プラットフォーム、簡単なJava統合)ですが、実際にはインタープリタ・モードのみが動作する唯一のモードであるため、パフォーマンスはそれほど優れていないことが予想されます。 C Ruby。

-1

私は乗客の使用を推奨しています.Railsアプリケーションの配備と管理は簡単です