Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: Does it Iactually/I run faster?

by nardo (Friar)
on Jul 04, 2000 at 06:20 UTC ( #20973=note: print w/ replies, xml ) Need Help??


in reply to Does it Iactually/I run faster?

Benchmarking it on my machine shows the multi line version running faster than the one liner.

use Benchmark; @array = ('elementary school', 'blah blah blah', 'stuff', 'hello', 'ya +y'); timethese(100000, { 'one line' => '&one_line', 'multi line' => '&multi_line'}); sub one_line { do {s/\s+/\t/; s/elementary/my dear Watson/g;} for @array; } sub multi_line { for ( @array ) { s/\s+/\t/; s/elementary/my dear Watson/g; } }

Output:
multi line: 5 wallclock secs ( 5.04 usr + -0.01 sys = 5.03 CPU) @ 19880.72/s (n=100000)
one line: 5 wallclock secs ( 5.72 usr + 0.00 sys = 5.72 CPU) @ 17482.52/s (n=100000)


Comment on Re: Does it Iactually/I run faster?
Download Code
RE: Re: Does it Iactually/I run faster?
by vkonovalov (Monk) on Jul 04, 2000 at 19:27 UTC
    This can't be true, because:
    d:\>perl -MO=Deparse -e "do {s/\s+/\t/; s/elementary/my dear Watson/g; +} for @array;" foreach $_ (@array) { s/\s+/\t/; s/elementary/my dear Watson/g;; } -e syntax OK

    You machine probably was overloaded with some extra tasks second time. And I beleive multiline version compiled into the same code internally.

      holy crap! that is the coolest thing i have seen in forever, I had NO idea you could do that! -MO=Deparse... wow, I am angered that i can only ++ this once, that is one of the most useful things I have seen in forever! Thank you!
      Sweet! writing obfusicated code just got a lot harder.
      Maverick goes pouring through the docs on B

      /\/\averick

RE: Re: Does it Iactually/I run faster?
by greenhorn (Sexton) on Jul 06, 2000 at 01:25 UTC

    Thanks on two accounts (the second being: reading your message, now I have an idea how to use Benchmark).

    The results here confirm what you observed:

    Benchmark: timing 500000 iterations of multi line, one line... multi line: 12 wallclock secs (12.31 usr + 0.00 sys = 12.31 CPU) one line: 16 wallclock secs (14.64 usr + 0.00 sys = 14.64 CPU)

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (12)
As of 2014-08-01 15:43 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Who would be the most fun to work for?















    Results (27 votes), past polls