7

この質問はよく聞かれていると思います。Railsに取り組んできたので、Railsを拡張できることはわかっていますが、それは素晴らしいことです。そして、PHPフレームワークに関する限り、それについては疑いの余地はありません。

どのフレームワークが優れているのか知りたくありません。

月に100万回のアクセスがある大規模なアプリを想定した場合、Railsと他のフレームワーク(PHP、Python)のスケーリングのコストはどのくらい異なりますか?

これは私がよく聞かれるものです。「レールはかなりうまくスケーリングする」と人々に説明することができますが、長期的には、経済性は何ですか?

誰かがいくつかのメトリックを提供できれば、それは素晴らしいことです。

4

3 に答える 3

5

この主な要因の1つは、フレームワークの選択による影響を受けないことです。これはデータベースアクセスです。どのようなアプローチをとっても、データをリレーショナルデータベースに配置する可能性があります。次に、問題は、データベースからデータをどれだけ効率的に取得できるかということです。これは主にRDBMS(Oracle対Postgres対MySQL)に依存し、フレームワークには依存しません。ただし、一部のデータマッピングライブラリがSQLを非効率的に使用する場合があります。

純粋な「訪問数」パラメータの場合、問題は実際にはHTMLテンプレートシステムがどれだけ高速に動作するかです。したがって、問題は、1秒間に何ページをレンダリングできるかということです。これを主要な指標にして、システムの拡張性を判断します。

もちろん、ページが異なればコストも異なる場合があります。一部の人はキャッシュを使用できますが、他の人は使用できません。したがって、スケーラビリティを測定する際には、100万回の訪問を安価なページと高価なページに分割し、別々に測定します。一緒に、それらはあなたのシステムが取ることができる負荷(またはあなたが需要を満たすために必要なシステムの数)の良い見積もりを与えるべきです。

メモリ使用量の問題もあります。SQLにデータがある場合、これは問題ではありませんが、キャッシングでは、スケーラビリティを考慮する必要がある場合もあります。メインメモリの使用量。

于 2009-07-22T05:27:53.637 に答える
4

私見これらの3つには「スケーラビリティバッテリー」が含まれていないため、スケーリングのコストに違いはないと思います。これらの3つの選択肢の間に、スケーリングに大きな違いをもたらすような大きなアーキテクチャ上の違いは見られません。

つまり、アプリケーションアーキテクチャは、3つの言語のどれに関係なく、アプリケーションのスケーリング方法を支配することになります。

メモリキャッシュが必要な場合は、少なくともmemcached(または3つの言語すべてとインターフェイスする同様のもの)を使用します。たぶん、nginxを使用してスケーラビリティを支援し、memcacheから直接サービスを提供しますが、それによってphp / perl / python/rubyのパフォーマンスが変わることはないことは明らかです。

MySQLまたはPostgresqlを使用する場合でも、アプリの言語に関係なく、スケーリング用にデータベースを正しく設計する必要があります。また、クラスタリング/ミラーリングを開始するために使用するツールは、アプリの外部にあります。

メモリ使用量の観点から、Python(mod_wsgiデーモンモードを使用)とRuby(passenger / mod_rackを使用したエンタープライズルビー)は、少なくともfcgiでのPHPに匹敵し、おそらくmod_phpでのPHP(つまり、apache MPM prefork + php inすべてのapacheプロセスは多くのメモリを消費します)。

この質問が興味深いのは、これら3つの言語とErlangのようなものを比較することです。Erlangのようなものでは、すべてのErlangプロセスで自動的に安価な組み込みのスケーラビリティがありますが、それでも、アプリがうまく機能しない限り、RDBMSデータベースのボトルネックが発生します。 Erlangデータベースの方法の1つ、たとえばcouchdbに適合します。

于 2009-07-22T06:16:17.470 に答える
1

残念ながら、Rails、PHP、Djangoのコスト比較はわかりません。しかし、私はいくつかのJava Webフレームワークのコスト比較を知っています:Spring(9k $)、Wicket(59k $)、GWT(6k $)、JSF(49k $)。

ここに元の会議があります:

http://www.devoxx.com/display/DV11/WWW++World+Wide+Wait++A+Performance+Comparison+of+Java+Web+Frameworks

そこにあなたはそれについての投稿があります(短い):

http://blog.websitesframeworks.com/2013/03/web-frameworks-benchmarks-192/

このコストについて推測したい場合。このデータを、Techempowerによって提案されたベンチアームと交差させることができます。

http://www.techempower.com/benchmarks/

したがって、SpringがWicketと比較してかなり安価であり、Django / RailsのベンチマークがWicketやSpringよりも悪いことがわかっている場合は、おそらくコストが高くなることを意味します。

それが役に立てば幸い。

于 2013-09-04T19:55:08.007 に答える