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が遅めなのは大きいデータのシリアライズが要因なのかなー。