Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

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...

"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?

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (11)
As of 2015-11-30 08:50 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (766 votes), past polls