先日の記事でHttpInvokerを利用したほうがいいのかなぁ、と書いたのですが、やはりHttpInvokerのほうがいいみたいです。
他のひとに頼んで調査をしてもらったのですが、メソッドコール数、処理時間計測からHessianやBurlapよりも2〜3倍速度が速くなることがわかりました。
で、ソース解析をしてみたのですが、Hessianはデータをバイナリで処理するための、バイナリのSerialize, Deserializeを行っており、BurlapはXMLデータのため、XMLの解析に時間がかかっているみたいです。
それでも結構早いんですけど、こっちが組み込むサービスではもっと早くできるものが欲しかったので、HttpInvokerにしてしました。
HttpInvokerですと、Serialize, DeserializeはJava標準のObjectInputStream, ObjectOutputStreamを利用してHTTPのPOSTデータとして送信しているので、そりゃ何もしていないようなもんだから早いよな、と感じてしまいました。
どれを利用するにしても切り替えはapplicationContext.xmlの内容を書き換えるだけなので、この点についてはSpringFrameworkを取り入れて正解だと思っています。
ですが、SpringFrameworkを取り入れたことで、メモリの使用量がかなり増えてしまったことは痛いところです。容易に組める分、どこかに負担がかかるのは目をつぶるしかないのでしょうか。
ということで現在はメモリ使用量のコントロールができるのか調査しています。
