Perlで累乗計算の速度計測〜二乗を計算するなら?〜
Perlで二乗の計算をするなら
$i ** 2
よりも
$i * $i
の方が約2倍早い。
実験
0〜1000000までの二乗を計算する速度
ソース
pow1.pl(*で計算)
#!/usr/bin/perl use strict; for (my $i = 0; $i < 1000000; $i++) { my $p = $i * $i; }
pow2.pl(**で計算)
#!/usr/bin/perl use strict; for (my $i = 0; $i < 1000000; $i++) { my $p = $i ** 2; }
ちなみに三乗は?
$ time ./pow1.pl;time ./pow2.pl real 0m4.187s user 0m0.468s sys 0m0.031s real 0m1.183s user 0m1.046s sys 0m0.015s
となり、累乗の演算子を使用した方が明らかに早いことが分かる。