ひがやすを技術ブログ

電通国際情報サービスのプログラマ

パフォーマンス比較3

第三弾として、2000個のオブジェクトを登録して、1000回DIを型による自動(autowiring=byType)で行うやつを測定してみました。Seasar2のバージョンは、2.3.7、Springは1.2.6です。これは、この後最新版でも比較します。
結果(の平均)は、Seasar2が150ms、Springが8000ms。約53倍くらいですね。前回のautowiringなしの結果と比較すると、Seasar2は変化なし、Springは2倍遅くなっています。Springは、autowiringで対象となるオブジェクトを探しに行くときに、コンテナに登録されている全オブジェクトを毎回見に行く(ように見える)ので、遅くなるのは想定されていたことです。Seasar2は、コンポーネントの登録時に、アクセスされる可能性のあるキーはあらかじめMapに登録します。そのため、autowiringでも、全件検索することはなく、キーによる検索のため、ほとんどパフォーマンスは変わりません。
このパフォーマンス比較のソースコードは、後で、オープンソースとして公開します。