in reply to Re^4: Performance, Abstraction and HOP
in thread Performance, Abstraction and HOP

I'm not sure that a memory hogging recursive function makes for a fair benchmark of function calling speed (even if the tail recursion could be optimized away in another language -- and if the tail recursion could be optimized away, you wouldn't be calling the function anymore, you'd just be doing a goto). I think this version of is more fair (which attempts to test the speed of function calling rather than memory allocation):
#!/usr/bin/perl #sum of number between 1 and 1,000,000 $n = 1_000_000; my $t = 0; $t = addup( $t, $n-- ) while $n; print "$t\n"; sub addup { $_[0] + $_[1]; }
and then the two come out closer:
$ time ./ 500000500000 real 0m5.68s user 0m5.48s sys 0m0.02s $ time ./ 500000500000 real 0m1.48s user 0m1.47s sys 0m0.01s