Math#pow(double,double)

Mathクラスでは、ネイティブで速く動作する機構がある場合は優先的に使用するという仕様なんですが、では単純な計算の場合はどうなのかを比較してみました。

たとえば、2乗を計算する場合。長大な配列を用意して、全ての要素の演算を処理し終えるのにどのくらい時間がかかるかを比較しました。10000個では差が出なかったので、5,000,000個(5百万個)の要素を持つ配列で試しました。結果は・・・。
配列版 : 78ms
Math版 : 437ms

けっこう大きな差が出ました。では、3乗では・・・?
配列版 : 79ms
Math版 : 2765ms

これは大きいですね。 C言語のライブラリでもそんな感じですが、指数が整数で既知の場合は、直接掛け算した方が速そうです。ちなみに実行環境は、WindowsXPPro、1.86GHz/767MB、J2SE DK5.0Update5でコンパイル。オプションは、JVMのヒープ領域を100MBに指定した以外はデフォルト。

トラックバック(0)

このブログ記事を参照しているブログ一覧: Math#pow(double,double)

このブログ記事に対するトラックバックURL: http://trialpc.net/mt/mt-tb.cgi/601

コメントする

Advertizement

このブログ記事について

このページは、tetsuが2005年11月30日 03:21に書いたブログ記事です。

ひとつ前のブログ記事は「そろそろやばそう」です。

次のブログ記事は「信頼度・支持度・リフト値」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 5.0

最近のコメント

カウンタ

リンク