実測値検証の巻
2005/04/08のコメントでいただいたのがあり。
せっかくなので、PropertyUtils*1の実行速度がどれほど変わるものなのかを試してみた。
http://jakarta.apache.org/site/downloads/downloads_commons.html
ここからCommons BeanUtils落としたけれども、
実行してみたらCommons Loggingも必要でした。
余談。
PropertyUtils.getProperty()の戻り値はObjectであることを
いちおー考慮して、実行時のサンプルソースを3種類用意してみた。
その1
Object objItem = PropertyUtils.getProperty( bean, "hogehoge" );
その2
String strItem = (String)PropertyUtils.getProperty( bean, "hogehoge" );
その3
String strData = bean.getHogehoge();
※細かいことはこちらでどーぞ。
とりあえず、何はともあれ100万回ループで測定してみた。
<<結果>>
その1:2719 ミリ秒
その2:2281 ミリ秒
その3:0 ミリ秒
あらま。
その3が早すぎそうなので、200万回ループにして再測定。
<<結果>>
その1:5328 ミリ秒
その2:4781 ミリ秒
その3:16 ミリ秒
その1はさておき、その2とその3で298.8125倍くらいの差がある。
1回だけではなんなので、何回も連続実行してみた。
<<結果>>
その1:4468 〜 5328 ミリ秒
その2:4750 〜 5110 ミリ秒
その3:15 〜 16 ミリ秒
だいたいこんなもんだった。
目で見てびっくり。
ってことで。
使いどころは別に設けるとして、今回のDB検索用部品への組み込みは無かったことになりました。
が、しかし。
便利なものは使おうってのがおいらの主旨なので、
テスト専用のお手軽実行環境作る時に使うことにしました。
技術的実験するのに、何でもすき放題できる環境はどのみち必要ですし。
本番用のプログラムをより早く確実なものを作るためにも。
知識をどうもありがとう( ´∀`)ノ>NAKさん