2012-05-13 8 views
0

春のMVCとウェブフローを使用してゲームサーバーを作成し、いくつかのWebページをユーザーに提供します。何か、javascriptのゲームはまた、いくつかのゲームロジックのために同じサーバー上で安らかなサービスに複数のajax呼び出しを行います。 Webページのパフォーマンスは重要ではありませんが、快適なサービスコールはできるだけ効率的にする必要があります(応答時間と同様に効率的です)。パフォーマンスのために、私はMVCを使用しても、春のwebservicesまたは純粋な安らかなジャージー?

サービスのパフォーマンスを向上させるには、純粋なJAX-RS(ジャージー)Webサービスコールを春のオーバーヘッドなしで使用する方がいいでしょう。なぜなら、スプリングレイヤーはパフォーマンスに悪影響を与える可能性があるからです。代わりに春のwebservicesフレームワークを使用し、残りの春の家族との統合を維持していますか?

ありがとうございました!

答えて

4

私は春自身がパフォーマンスに悪影響を与えるとは思いません。あなたはそれをどこで聞いたのですか?

スプリングWebサービスは、「契約の最初の」SOAPサービスです。 SOAP、XML、マーシャリング、アンマーシャリングのオーバーヘッドを支払う必要がないと言っているなら、有効なポイントがあります。これは、Springを使ってサービスを実装するかどうかにかかわらず、本当です。

RESTはHTTPなので、AJAX呼び出しでは自然です。

私は春3.0は、それが「春や春ではない」の選択肢ではありませんので、RESTをサポートしています信じて:

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/new-in-3.html#d0e1188

+0

しかし、純粋なJAX-RSよりも遅いSpring RESTサービスですか? (春のオーバーヘッドが多いのですか?) – JayDee

+1

いいえ、私はそう信じません。私はあなたが時期尚早に最適化すべきではないと言います。何かを実装し、そのデータを入手してください。パフォーマンスが許容できない場合は、コードをプロファイルして、速度が遅い場所を特定して修正します。性能が許容できるまで繰り返す。サービスに追加する機能は、Springよりもパフォーマンスのボトルネックになる可能性が高くなります。彼らはあなたや私よりも良いコードを書いています。 – duffymo

+1

誤った答えです。 http://www.techempower.com/benchmarks/#section=data-r9&hw=peak&test=json – stepanian

7

そこに多くの明確なベンチマークはありませんが、ここで見てみましょう: http://www.techempower.com/benchmarks/

これは、Springを使用する際のオーバーヘッドを明確に示しています。 JSONを手動で処理するサーブレットと比較して、Springは「遅い」です。個人的には、あなたがそれに精通していない限り、Springは開発時間を短縮するとは思わない。 REST APIとして機能するシンプルなサーブレットを作成するのは非常に簡単です。ベンチマークのサーブレットコードを見てみましょう: Servlet benchmark

+0

はい、REST APIとして機能するサーブレットを書くのは簡単です。しかし、あなたのAPIが成長した場合に終了する定型コードについては、単体テストが難しいと考えるのは難しいでしょう。依存関係インジェクション、複数のメディアタイプ、非同期リクエストを追加しようとするときに直面することを考えてみてください...これらの抽象化はすべて、Spring MVC REST、Jersey、DropWizard、REST Easyなどのフレームワークで既に解決されています。あなたがレゴピースのように必要なものを削除することができます。あなたはいつもあなたのアプリケーションを細かく調整するのではなく、アプリケーションを微調整し、パフォーマンスを向上させることができます。 – raspacorp

関連する問題