Math#pow(double,double)

  • 更新日:
  • Java

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

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

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

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

Track Back

Track Back URL

コメントする

公開されません

refresh captcha

画像の中に見える文字を入力してください。

このページの上部へ

About

tetsuの日記・雑記です。
日々経験したことを記録していきます。

広告

サイト内検索

最近のピクチャ

  • リアディレーラ

月別アーカイブ

最近のコメント