Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

Re: Deep recursion problem

by TGI (Parson)
on Oct 23, 2011 at 02:12 UTC ( #933120=note: print w/replies, xml ) Need Help??

in reply to Deep recursion problem

If you want to do this kind of recursion, avoiding all the copying will make things faster.

Note that I am too lazy to even try a comparison using Benchmark to prove what I say. So I could be deluding myself here.

This code should be a fair bit faster than yours:

sub size_of_an_array { return 0 unless @_; pop; return 1 + &size_of_an_array; }

The reason for the putative speed boost is that it avoids making any copies of the array under consideration.

Check out perlsub for the meaning of &sub_name;.

If you care to benchmark, you might find that shift works even faster than pop. It is a very frequent operation on @_, so I wouldn't be surprised if there are clever optimizations there.

You also might find that I'm full of it. Surprising things can happen. That's why you should always benchmark and profile code when you try to optimize it. That way you can be sure you are making effective optimizations on the right parts of the code.

TGI says moo

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://933120]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (3)
As of 2021-05-12 08:29 GMT
Find Nodes?
    Voting Booth?
    Perl 7 will be out ...

    Results (125 votes). Check out past polls.