フィボナッチで速度調査
ソースはfib()関数だけならば同じ。
int fib(int n) { if (n == 1 || n == 2){ return 1; } else{ return fib(n-1) + fib(n-2); } }
$ time ./fib 50 real 3m11.824s user 3m11.512s sys 0m0.044s
$ time ./fib.d 50 real 2m52.710s user 2m52.275s sys 0m0.028s $ time ./fib 50 real 2m52.712s user 2m52.375s sys 0m0.032s
D言語の方が早い。
しかも何故か、D言語はコンパイルしても、スクリプト形式で動かしてもほとんど速度に変化無し。
もしかして勝手にコンパイルして動かしているのかな?