鍋あり谷あり

テーマを決めずに適当に書いています。

ActionScript / JavaScript / JScript ベンチマーク

mtasc でつくった swf 上での計算があんまり遅かったので、ベンチマークしてみた。
Math オブジェクト内にある三角関数や指数関数を、十万回ずつ呼んでみた。
まずは結果。有効数字は二桁弱。:

Flash Player 6 を試すことができたのは、たまたま最新じゃなかったから。ちょっとラッキー。
でももう最新にしてしまった。

結果を見てみると。
IE+FP7 と Firefox+FP7 の差は、誤差程度。やはりブラウザには依存しない。
IE Firefox FP7 の順なのはまあまあ予想の範囲内だが、FP7 の遅さが際だっている。あんまり計算させるとかわいそうかも。
書き方を知らないし処理系が手元にないので今はやれないが、Adobe SVG でも試したい。

ちなみに、こんな計算をした:

function c()
{
  var d = 0;
  for( var i=1 ; i<100000 ; ++i ){
    d += Math.sin(i);
    d += Math.cos(i);
    d += Math.asin(1/i);
    d += Math.acos(1/i);
    d += Math.sqrt(i)
    d += Math.atan2(i,1);
    d += Math.exp( -Math.abs( Math.tan(i) ) );
    d += Math.log(i);
  }
  return d;
}

ちなみにちなみに、計算結果は 22486688.3040。これより下の桁では処理系によって差があったりした。