TOPシステム開発> はじめに
パフォーマンス徹底比較!! Seasar2 VS Spring
パフォーマンス徹底比較!! Seasar2 VS Spring

第1回:どっちが速いSeasar2 VS Spring
著者:株式会社電通国際情報サービス  比嘉 康雄
         株式会社アークシステム  本間 宏崇
         日本ヒューレット・パッカード株式会社   2006/5/18
1   2  3  4  次のページ
はじめに

   Seasar2が登場して2年が経ち、今では実際の開発でDIxAOPコンテナを使用することは珍しいことではなくなりました。

   DIxAOPコンテナを導入するにあたって、他のDIxAOPコンテナとの速度比較やDIxAOPコンテナが行う処理の中でどこに時間がかかっているかについて評価されていることと思いますが、なかなかそのすべてを把握されていないのではないでしょうか。

   そこで本連載では、DIxAOPコンテナの生成やコンポーネント取得といったベーシックな機能についてパフォーマンスを測定して、以下にあげた点について明らかにしていきます。

  • DIxAOPコンテナ(Seasar2、Spring)の実装によって、どれくらいパフォーマンスが異なるのか
  • DIxAOPコンテナが行う処理の中で、どこに時間がかかるのか

表1:パフォーマンス測定の目的

   また結果として速度が遅くなった箇所については、その原因を考察して実案件で役立てていただけましたらと思います。

   なお今回の検証作業は、電通国際情報サービスとアークシステムが担当しました。検証環境は、日本ヒューレット・パッカードが提供しています。


環境

   まずは今回のパフォーマンスを測定した環境について紹介します(表2)。

ハードウェア HP ProLiant DL360 G4p
CPU:Intel Xeon 3.80GHz(2CPU)
メモリ:4GB
ソフトウェア OS:Red Hat Enterprise Linux AS 4 Update 3(x86)
Java:1.5.0_06(Sun)
DIコンテナ Seasar 2.4 beta1(2006/03/27)
Spring 2.0 M3(2006/03/08)
ベンチマークプログラム 自作

表2:測定環境

   今回はDIxAOPコンテナ単体のパフォーマンスを測定したため、データベースやアプリケーションサーバは使用していません。

   また、Webアプリケーションやデータベースなどのベンチマークプログラムは様々あるのですが、DIコンテナ用のベンチマークプログラムはないため、今回は自作のプログラムで測定しました。


測定方法

   今回の測定方法はベンチマークプログラムをそれぞれ5回実行して、最大・最小を除いた3回の平均値を取っています。

   ベンチマークプログラムはAntのjavacタスクから下記のオプションをつけて実行しました。スワップが発生しないように物理メモリ(4GB)の範囲内にしています。

Xmx1024M
Xms1024M

   またパーマネント領域を明示的に指定しました。これは、いくつかのベンチマークプログラムがOut Of Memory Errorを起こしたためです。

XX:PermSize=384M
XX:MaxPermSize=384M

   あわせてJVMのキャッシュをクリアするために以下のように設定します。

fork=true


DIxAOPコンテナが行っていること

   パフォーマンスの測定の前にDIxAOPコンテナについて説明します。大まかにいえばDIxAOPコンテナは次のような処理を行っています。

  • コンテナ生成
  • DI
  • AOP

表3:DIxAOPコンテナが行う処理

   本連載では、それぞれへフォーカスしてパフォーマンスを取得することにします。

1   2  3  4  次のページ


株式会社電通国際情報サービス  比嘉 康雄
著者プロフィール
株式会社電通国際情報サービス  比嘉 康雄
1992年、電通国際情報サービス入社。1996年にOracleに触れたことでソフトウェアの魅力に開眼。その後、日本産オープンソース「Seasar」の開発を中心になって行い、2004年5月に「Seasar2」をリリース。
http://www.isid.co.jp/
http://d.hatena.ne.jp/higayasuo/

株式会社アークシステム  本間 宏崇
著者プロフィール
株式会社アークシステム  本間 宏崇
プログラマ。2004年より(株)アークシステムに所属。最近の興味はペアプログラミング・テスト駆動開発・プロジェクト自動化など。現在はWebアプリケーションフレームワーク「Teeda
http://teeda.seasar.org/ja/)」の開発に携わっている。

日本ヒューレット・パッカード株式会社
著者プロフィール
日本ヒューレット・パッカード株式会社
今回、Seasar2とSpringのパフォーマンスの検証を行う際の環境を提供しています。

INDEX
第1回:どっちが速いSeasar2 VS Spring
はじめに
  コンテナ生成の比較
  コンポーネント取得の比較
  リフレクション情報取得の比較