2011-04-12 6 views
3

Railsの規約は、フレームワークと宝石の作家がリフレクション/メタプログラミングを大いに活用するよう強制します。私はいつもメタプログラミングが効率的ではないと考えていましたが、ますます増え続ける宝石の使用傾向に伴い、問題は何ですか?パフォーマンスにはどんな影響がありますか?Railsメタプログラミングとパフォーマンス

+0

私はそれを考えていないになりUXですRailsの規則と関係があります。多くのことは、メタプログラミングを使用して解決する(そして後に維持する)ことは絶対に簡単です。 –

+0

ほとんどのメソッドはワイルドカードによって処理されるため、規約に関連しています(activerecord、actionpackをいくつか挙げておきます)。構成がルールであるフレームワーク/言語では、フレームワークはメソッドの反映を使用することはめったにありません。例えば、J2EE –

+0

JavaとRubyは非常に異なるため、Webフレームワークになる前にすべての比較が失敗します。ところで、 "メタプログラミング"は、そのような広範な用語です(@ shingaraは既に言及しています)。主に 'method_missing'を気にしましたか? –

答えて

0

本当にどのようなメタプログラミングに依存するのですか。実行時にはパフォーマンスに影響を与えないものもあります。ちょっとスタートが遅いです。

あなたのケースでベンチマークを行い、そこにどのような影響があるかを確認してください。

3

プログラマーの生産性>>ソフトウェアパフォーマンス(通常は)

本当に、この心配はありません...実際にはそうで正しいアルゴリズム、正しいアーキテクチャ、正しいデータベースモデルとは、はるかに重要純粋な言語のパフォーマンスよりも...

X努力は言語(JavaのXML地獄、Cコンパイルを)戦うに費やさない、努力がより良いアルゴリズムの設計に費やすより良く、より多くのユーザーに優しいアプリケーション

+1

あなたの声明はそこにある大部分のWebアプリケーションについて真実ですが(ほとんどのアプリケーションは、生涯にわたってトラフィックが多いと思われる場所には近くなりません)それはレールの過度の反射が非常に高いトラフィックのウェブサイトのためにそれを不適当にするのですか? –

+0

最後の文章がロードされた、すなわち「非常に高いトラフィックのウェブサイトには適していません。より良い声明は、反射に関連する落とし穴がある場合、ORMに頼るのではなく、SQLクエリを時々使用するのと同様に、パフォーマンスを犠牲にしなければならないようにしなければならないということです。 –

関連する問題