|
||||||||||||
| 1 2 3 4 次のページ | ||||||||||||
| はじめに | ||||||||||||
|
Seasar2が登場して2年が経ち、今では実際の開発でDIxAOPコンテナを使用することは珍しいことではなくなりました。 DIxAOPコンテナを導入するにあたって、他のDIxAOPコンテナとの速度比較やDIxAOPコンテナが行う処理の中でどこに時間がかかっているかについて評価されていることと思いますが、なかなかそのすべてを把握されていないのではないでしょうか。 そこで本連載では、DIxAOPコンテナの生成やコンポーネント取得といったベーシックな機能についてパフォーマンスを測定して、以下にあげた点について明らかにしていきます。
表1:パフォーマンス測定の目的 また結果として速度が遅くなった箇所については、その原因を考察して実案件で役立てていただけましたらと思います。 なお今回の検証作業は、電通国際情報サービスとアークシステムが担当しました。検証環境は、日本ヒューレット・パッカードが提供しています。 |
||||||||||||
| 環境 | ||||||||||||
|
まずは今回のパフォーマンスを測定した環境について紹介します(表2)。
表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 次のページ |
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||

