TOPシステム開発> コンテナ生成の比較
パフォーマンス徹底比較!! Seasar2 VS Spring
パフォーマンス徹底比較!! Seasar2 VS Spring

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

   Seasar2もSpringも、設定ファイルから管理するコンポーネント情報を構築します。設定ファイルの形式は両者ともXMLです。

   コンテナ生成時にそれぞれが行っている処理は次のようになります。
順番 Seasar2 Spring
1 SAXパーサを使用してXMLを読み込む DOMパーサを使用してXMLを読み込む
2 コンポーネントのリフレクション情報をキャッシュする なし(このタイミングではリフレクション情報は取得しません)

表4:コンテナ生成時に行う処理

   さて、どちらが速いでしょうか。処理が少ないぶんSpringの方が速そうですが、一方でDOMよりSAXの方が速いことを考えると逆のようにも思えてきます。


測定プログラム

   まず測定プログラムについて簡単に解説します。

   コンポーネントを大量に記述した設定ファイルを用意して、それぞれのコンテナを生成するのに掛かった時間を測定しました。設定ファイルとプログラムは次のようになります。コンポーネント数は、1,000個/2,000個/5,000個/10,000個の4ケースで測定しました。

設定ファイル(Seasar2)
<components>
   <component name="nullBean00000" class="xxx.NullBean00000" />
   <component name="nullBean00001" class="xxx.NullBean00001" />
   :

プログラム(Seasar2)
long start = System.currentTimeMillis();
S2Container container = S2ContainerFactory.create("(設定ファイルへのパス)");
// container.init();
long end = System.currentTimeMillis();
// end - startを記録

設定ファイル(Spring)
<beans>
   <bean name="nullBean00000" class="xxx.NullBean00000" />
   <bean name="nullBean00001" class="xxx.NullBean00001" />
   :

プログラム(Spring)
long start = System.currentTimeMillis();
BeanFactory factory = new XmlBeanFactory(new ClassPathResource("(設定ファイルへのパス)"));
long end = System.currentTimeMillis();
// end - startを記録

   ご覧になるとわかりますが、DIやAOPは使用していません。それでは実際の結果を見てみましょう。


コンテナ生成の結果

   実際の結果は図1になります。

コンテナ生成処理の比較
図1:コンテナ生成処理の比較

   Seasar2とSpringの両方ともほぼ同じ速度になりました。リフレクション情報をキャッシュする分のオーバーヘッドがSAXとDOMの性能差で吸収されていると思われます。

前のページ  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
  はじめに
コンテナ生成の比較
  コンポーネント取得の比較
  リフレクション情報取得の比較