|
||||||||||||
| 前のページ 1 2 3 4 次のページ | ||||||||||||
| コンポーネント取得の比較 | ||||||||||||
|
次は生成したコンテナからコンポーネントを取得する処理について見てみましょう。コンポーネント取得時にそれぞれのDIxAOPコンテナが行う処理は次のようになります。
表5:コンポーネント取得時に行う処理 今度はSeasar2の方が速いように予想できます。 |
||||||||||||
| 測定プログラム | ||||||||||||
|
Seasar2における測定プログラムはこのようになります。 コンポーネント取得プログラム(Seasar2)
DecimalFormat format = new DecimalFormat("00000");
times変数にはコンポーネント数(1,000個、2,000個、5,000個、10,000個)が入ります。Springでも同様のプログラムとなります。 |
||||||||||||
| コンポーネント取得の結果 | ||||||||||||
|
それでは結果を見てみましょう。 ![]() 図2:コンポーネント取得 予想通りSeasar2の方が速い結果となりました。差は10〜30倍ほどで、実際の時間にするとコンポーネント1,000個の場合に1,400msほどになります。 ちなみに、これはコンポーネントをはじめて取得するときの結果です。2度目以降の取得では、すでに生成されたコンポーネントが返されるだけなので、Seasar2とSpringの両方ともほぼ同じ速度になります。 |
||||||||||||
| 理由 | ||||||||||||
|
Seasar2はすでにリフレクション処理を終えていますがSpringはこのタイミングでリフレクション処理を行うため、このような結果になったといえます。 それにしてもコンテナ生成時の結果とあわせて見ると、Springはリフレクション処理にずいぶん時間が掛かっているように思えます。 |
||||||||||||
|
前のページ 1 2 3 4 次のページ |
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||


