GAE/J下でのRPCのパフォーマンスの調査 (BlazeDS, GWT)

ふと気になったので調べてみました。GAE下でのパフォーマンス測定なのでそこんとこよろです。まずは結果

環境 フレームワーク 対象となるメソッド 平均時間(ms)
GAE BlazeDS Simple 32823
List 33203
GWT Simple 27036
List 29996
Custom Simple 30922
List 35047
Local BlazeDS Simple 4276
List 2571
GWT Simple 520
List 3668
Custom Simple 4292
List 2130


条件として、long 3個、50-100byteのStringを3個を保持するDTOを、Simpleだと1つListだと50個のリストを、ランダムに生成して返すという処理で計測。
Simpleは100回、Listだと50回の速度。
RPCはシリアルにリクエスト。(レスポンスが返ってきたらリクエスト)
Customは同程度の処理を、de/serializeを自前で書いたもの。クライアントはFlexで書いたFlash
GAEのLocalではコンパイルしたもので測定。


感想

  • GAE環境でのパフォーマンスは、通信経路、アプリケーションサーバ、その上のロジック、の切り分けをしないとなんとも…(´・ω・`)
  • GWTのSimpleがやたら早いのは、JSでのprotocol bufferのパースが早いってことなのかなー。Listが遅めなのは大きいデータのシリアライズが要因なのかなー。