実測値検証の巻

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さん

*1:パッケージはもちろんorg.apache.commons.beanutils.PropertyUtils