# [MacRuby-devel] Speed

Sun Nov 22 03:37:09 PST 2009

```On Sun, Nov 22, 2009 at 1:25 AM, Uliano Guerrini
<uliano.guerrini at gmail.com>wrote:

> I'm new to Ruby BECAUSE of MacRuby
>
> While learning I run this simple exercise (the sum of even fibonacci less
> than 4 million) on both MacRuby 0.5.2 and ruby 1.9.1.
>
> the recursive version runs about 5 times faster on MacRuby and that was
> expected but the iterative runs about 1000!!! times slower, and that is
> *frankly* unacceptable.
>
> What's going on?
>
> uliano
>
> def fib_rec(n)
>  n < 2 ? n : fib_rec(n-1) + fib_rec(n-2)
> end
>
>
> def fib_iter(limit)
>  yield 0
>  yield 1
>  lastbut=0
>  last=1
>  while true
>    a=lastbut+last
>    if a<=limit
>      yield a
>    else
>      return
>    end
>    lastbut=last
>    last=a
>  end
> end
>
>
> sum=0
> i=0
> start=Time.now
> while (f=fib_rec(i))<=4_000_000
>  sum += f if f%2==0
>  i+=1
> end
> time=Time.now-start
>
> puts 'recursive'
> puts 'sum = ',sum
> puts 'time = ',time
>
> sum=0
> start=Time.now
> fib_iter(4_000_000) { |f| sum+=f if f%2==0}
> time=Time.now-start
>
> puts 'iterative'
> puts 'sum = ',sum
> puts 'time = ',time
>
>
Uliano, what were you actual benchmarks and your system configuration?