11

私は大学の何人かの友人と議論してきましたが、どのフレームワークが Web アプリケーションのスケーラビリティーに優れているか (しかも非常に高速) に到達できません。

1 つは jsp の呼び出し、もう 1 つは ruby​​ の呼び出し、もう 1 つは php の呼び出しなどです。スケーラビリティの向上の可能性について、明確にしていただけますか?

Tks、検索したものと重複していないことを願っていますが、このような以前の質問は見つかりませんでした。

編集:これについて比較することができれば、それは良いことです:)

4

12 に答える 12

24

Ruby と PHP は webapp フレームワークではありません。これらは、Web 開発で人気のあるプログラミング言語です。

一般的に言えば、webapp のスケーラビリティはプログラミング言語の特性ではなく、特定の webapp フレームワークがせいぜいスケーラビリティを妨げることはありません。優れたスケーラビリティは、アプリケーション設計の特性です。

百科事典には程遠い、ポイントごとの比較を行うための webapp フレームワークが多すぎます。

また、特定のアプリケーションのスケーラビリティにはいくつかの方法で取り組むことができます。1 つの方法は、明確に定義された狭い範囲を持ち、素晴しい生のパフォーマンスを目指すことです。そうすれば、1 台のマシンで膨大な数の作業単位を処理できます。最も良い例はMailinatorです。

もう 1 つの方法は、ハードウェアを「単に」追加するだけで、増加する負荷に簡単に対応できるようにすることです。ほとんどすべてのデータベース ベースの webapp フレームワークは、この方法でスケーリングできます。ロード バランサーと共有データベース バックエンドの間にアプリケーション サーバーを追加するだけです。このように問題を組み立てる場合、主な関心事は、1. データベースの競合 2. データベースの負荷を最小限に抑えるようにアプリケーションを設計することです。

最後の方法は、システムを完全に並列化するように設計することです。Google がその最たる例です。

要約すると、言語やフレームワークがスケーラブルなアプリケーションを作成するのではなく、ソフトウェア アーキテクトが作成します。

編集:明確にするために、私の答えはスケーラビリティに焦点を当てています。つまり、設計を変更せずに負荷の増加を処理する機能です。これは、実行速度とは異なる特性です。

于 2008-10-21T18:59:19.927 に答える
4

アルゴリズムは、使用する言語よりもスケーラビリティを重視します。

とはいえ、言語間で実行速度に違いがあります。Java (サーブレットと JSP はサーブレット、つまりネイティブ コードにコンパイルされます) は、Ruby と PHP よりもある程度高速になると思います)。また、スケーラビリティーを最適な方法で実行できるようにする Java 用の Web フレームワークも数多くあります。

また、ロード バランサの背後で問題なく実行できるようにアプリを設計すると、スケーラビリティがはるかに容易になります :) ただし、これは私の専門分野ではありません。

于 2008-10-21T18:50:42.173 に答える
3

また、「どちらが速いですか? PHP vs ASP vs JSP vs CGI など」も参照してください。

Java/Java EE は、分散/クラスター化されたアプリケーションを開発するためにゼロから設計された唯一の「フレームワーク」であり、仕様 (EJB、JTA...) からそれを達成するための優れた実践を奨励していると思います。

しかし、いつものように、それは依存します。この種の質問は、しばしば炎上戦争になる傾向があります:)

于 2008-10-21T18:56:16.920 に答える
3

(5年後...)

複数の言語に依存する Web フレームワークのベンチマークを行っているこのブログ記事を見つけました。そして今、これは私が2008年に持っていた質問にほぼ答えています.

http://www.techempower.com/blog/2013/03/28/framework-benchmarks/

于 2013-03-28T16:26:16.957 に答える
3

Web フレームワークのスケーラビリティーは、少し考え過ぎの問題です (p155ing コンテストと言う人もいます)。大金を稼いでいて (最近は頑張ってください)、1 日に何百万人もの訪問者を確保できる場合を除き、これらのフレームワークはすべて (ASP.NET と同様に) それを適切に処理できます。

個人的には、常に ASP.NET を選択します。何よりもスケーラブルで、最高の開発者ツールを備えています。唯一の欠点は、ホスティングとオペレーティング システムのコストです。

于 2008-10-21T21:47:59.087 に答える
2

あなたが言及したこれらのフレームワークのいずれかがスケーラビリティを深刻に妨げるかどうかはわかりません。

それはすべて実装に依存します。

最初に Web アプリをうまく機能させることに集中し、それが問題になったときにスケーラビリティについて心配します。つまり「橋に来たら渡ろう」ということです。

于 2008-10-21T21:33:33.420 に答える
2

A: C ISAPI dll (またはカスタム Apache モジュール) :)

それでも、Web サーバーのオーバーヘッド、http 要求の解析、および html ページの提供により、アプリの実行時間はほとんど問題になりません。アプリを CGI アプリとして実行する場合は、パフォーマンスがさらに低下することが予想されます。

Web のスケーラビリティについては、サーバーを追加して負荷を分散し、データベース (頻繁に使用される場合) を別のサーバーに置くことでサーバーの負荷を軽減することについて実際に話しているのです。

これらの言語の生のパフォーマンスは、心配する必要はほとんどありません。最も生産性が高い、使いたいものを使用してください。ネットワーク io、セキュリティ、正確性など、遭遇する他の問題を心配してください。

于 2008-10-21T21:34:57.863 に答える
1

すでにいくつかの良い点。私の主なポイントは次のとおりです。Python を内外で知っている人は、おそらく Java を使用するよりも Python を使用して、よりスケーラブルなコードを作成できるでしょう。そして、あなたが言及したすべてのテクノロジーを使用する非常に大きなサイトがたくさんあるので、どちらの方法でも大きな利点はないと思います.

ほとんどの場合、別の方法に進む本当に重大な理由がない限り、慣れ親しんでいるものに固執する必要があります。

于 2008-10-21T21:47:53.813 に答える
1

私はたまたまこの質問に出くわし、速度について話している人もいれば、スケーラビリティについて話している人もいることに気付きました。違いを説明するブログ投稿を書きました。

http://www.fransekman.com/scalability-or-performance-what-do-you-mean/

「スケーラビリティの高い Web サイトとは、負荷が増加したときに容量を追加することで、パフォーマンス レベルを維持できる Web サイトです。」これは、任意のプログラミング言語とほぼすべてのフレームワークで実現できます。一部のフレームワークには機能が組み込まれており、これにより、一般的なスケーラビリティの実装がより速くなる場合があります。

于 2013-09-18T18:01:25.723 に答える
0

Web フレームワークの選択は、サイトのアーキテクチャよりもスケーラビリティ (スケーリング機能) に与える影響が少なくなります。最新の Web フレームワークのほとんどはスケーリングに非常に適しているため、注意が必要なのはデプロイの設定です。

于 2010-08-16T15:54:17.833 に答える
0

主要なサイトがスケーラビリティを実現するために LAMP をどのように使用しているかを知りたい場合は、データベース シャーディングを調べてください。

于 2008-11-21T16:14:18.637 に答える
0

コンパイルされた言語は通常、インタープリター言語よりも高速に実行されるため、Ruby と PHP は 8 番ボールより遅れていると思いますが、実際には、言語の使用方法とコードの構造にかかっています。

すべての言語には、スケーラブルなアプリケーションを構築するための独自のベスト プラクティスとパターンがあり、多くの場合、提案されたアプリケーションの機能によっては妥協が必要になります。

于 2008-10-21T18:53:18.173 に答える