text
Recursive call: Ruby vs Python
Facciamo un piccolo test: calcoliamo Fibonacci ricorsivamente in Ruby (v1.9.1) e in Python (v2.5.1) e vediamo chi vince
Ruby Fibonacci code (f.rb)
def fib(n)
if n == 0 || n == 1
n
else
fib(n-1) + fib(n-2)
end
end
36.times { |i| fib(i) }
Python Fibonacci code (f.py)
def fib(n):
if n == 0 or n == 1:
return n
else:
return fib(n-1) + fib(n-2)
for i in range(36):
fib(i)
Ora lanciamo i due programmi nel seguente modo:
time ruby f.rb && time python f.py
E vediamo l’output:
real 0m9.956s
user 0m9.875s
sys 0m0.034s
real 0m24.471s
user 0m24.060s
sys 0m0.074s
Ecco Ruby impiega 9.956 secondi mentre Python 24.471 secondi!
Ruby vince nettamente su Python!!
Oh beh provate pero` questo codice in C (f.c):
int
fib(int n)
{
if(n == 0 || n == 1)
return n;
else
return fib(n-1) + fib(n-2);
}
int
main()
{
int i;
for(i = 0; i < 36; i++)
fib(i);
}
Compiliamo:
gcc f.c
Ed eseguiamo:
time ./a.out
0.546 secondi!
blog comments powered by Disqus