Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re^4: Splicing Arrays on pre-defined indices

by injunjoel (Priest)
on Aug 15, 2008 at 23:55 UTC ( #704638=note: print w/ replies, xml ) Need Help??


in reply to Re^3: Splicing Arrays on pre-defined indices
in thread Splicing Arrays on pre-defined indices

Since I just updated my previous suggestion I figured I would Benchmark things...
Not that it matters but I thought you might be interested.
Update There was an issue with how I ran the test before. Here are the updated code and results.

#!/usr/bin/perl -w use strict; use Benchmark; my $count = 500000; my $line = "1!2!3!4!5!6!7!8!9"; my @arr = split /!/, $line; my @exclude = (2,5..8); my @exclude_lkup; $exclude_lkup[$_] = 1 for @exclude; sub ikegami { my @tarr = @arr; my @filtered = map $tarr[$_], grep !$exclude_lkup[$_], 0..$#tarr; } sub injun { my @tarr = @arr; @tarr[@exclude] = (); @tarr = grep $_, @tarr; } timethese ( $count, {'Ikegami' => '&ikegami', 'InjunJoel' => '&injun'} );
Results in
Benchmark: timing 500000 iterations of Ikegami, InjunJoel... Ikegami: 16 wallclock secs (15.88 usr + 0.00 sys = 15.88 CPU) @ 314 +94.08/s (n=500000) InjunJoel: 10 wallclock secs ( 11.05 usr + 0.00 sys = 11.05 CPU) @ 4 +5265.25/s (n=500000)
Though I'm not versed enough in O(n) notation to tell you why...

-InjunJoel
"I do not feel obliged to believe that the same God who endowed us with sense, reason and intellect has intended us to forego their use." -Galileo


Comment on Re^4: Splicing Arrays on pre-defined indices
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (3)
As of 2014-08-23 20:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (178 votes), past polls