 |
|
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コンテナは次のような処理を行っています。
表3:DIxAOPコンテナが行う処理
本連載では、それぞれへフォーカスしてパフォーマンスを取得することにします。
|
1 2 3 4 次のページ
|

|
|
|
|

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

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