私のデータ集約型Webアプリケーション(重いフォームと複雑なレポート)の場合、パフォーマンスの観点から、ブラウザプラグインベースのRIA(SilverLightなど)またはJavaスクリプトベースのRIA(ExtJSなど)のどちらが優れていますか?
現時点では、プラグインの可用性などの議論を避けることができます。私の唯一の焦点はパフォーマンスです。推論をいただければ幸いです。
私のデータ集約型Webアプリケーション(重いフォームと複雑なレポート)の場合、パフォーマンスの観点から、ブラウザプラグインベースのRIA(SilverLightなど)またはJavaスクリプトベースのRIA(ExtJSなど)のどちらが優れていますか?
現時点では、プラグインの可用性などの議論を避けることができます。私の唯一の焦点はパフォーマンスです。推論をいただければ幸いです。
計算上、SilverlightはJavascriptと比較して勝ちますが、特にSilverlight 4(計算の2倍の速さ)ではコンテストはありません。しかし、生の数値計算のパフォーマンスが必ずしも最も重要だとは思いません。ChromeのJavascriptエンジンはIE8の10倍高速ですが、ExtJSのWebアプリケーションの応答性は10倍近くありません。オブジェクトモデルの操作速度はより重要であるように思われ、HTMLはExtJSのグリッドのような複雑なコントロール用に実際に構築されていないため、ここでは不利に思われます。
ここでExtJSグリッドによって生成されたHTMLを見ると、グリッドの最も外側のコンテナーからセルのコンテンツまで13層の深さになります。HTMLとCSSをだまして正しいことをさせるためのこれらすべてのレイヤー。
少し推測していますが、Silverlightのオブジェクトツリーがはるかにフラットであるのは当然のことです。なぜなら、Silverlightは、それが行うことを実行するように構築されているからです。そのSilverlightのハードウェアアクセラレーションに加えて、パフォーマンス部門で間違いなく勝ちますが、それにもかかわらず、ExtJSのようなフレームワークを使用する場合、パフォーマンスはそれほどすぐにはボトルネックにはならないと思います。通常はまだ十分に高速です。
それは非常に多くの変数に依存するため、言うのは難しいです。ただし、Bubblemarkを確認することをお勧めします。その特定のベンチマークでは、Silverlight 3.0(ビットマップキャッシュが有効になっている)はうまく機能しますが、使用しているブラウザーによって大きく異なります。Chromeを使用したJavascriptは、Silverlightのレンダリングパフォーマンスにかなり近いものです。http://www.youtube.com/watch?v=gqjidzjkMM0も参照してください。
Silverlightを使用し、Net.TCPを使用してWCFバックエンドにアクセスできる場合は、かなり優れたデータアクセスパフォーマンスも得られます。JavaScriptよりもいくらか高速であると思いますが(HTTPオーバーヘッドがないため)、RTMPを介してFMSにアクセスする場合と比較してどうなるかわかりません。