Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

RE: RE: Blessables -- What Can You Make Into Objects?

by chromatic (Archbishop)
on Apr 21, 2000 at 08:40 UTC ( #8330=note: print w/ replies, xml ) Need Help??


in reply to RE: Blessables -- What Can You Make Into Objects?
in thread Blessables -- What Can You Make Into Objects?

Looks like I'm wrong about being able to bless a s{}{} statement. That would be truly convenient. I'll change that in the tutorial.

In your benchmarking, lots of the time *is* taken up by the function call. Here's what I ran to prove that. (This has to be done in the Cleaner package, for obvious reasons.):

timethese(1000000, { 'blessed' => sub { my $bar = $foo; $c->clean($foo); }, 'normal' => sub { my $bar = $foo; $bar =~ s/^\s+|\s$//g; }, 'super' => sub { my $bar = $foo; $bar =~ s/$c//g; }, });
There's not nearly the performance penalty involved:
Benchmark: timing 1000000 iterations of blessed, normal, super... blessed: 10 wallclock secs ( 9.83 usr + 0.00 sys = 9.83 CPU) normal: 4 wallclock secs ( 5.42 usr + 0.00 sys = 5.42 CPU) super: 7 wallclock secs ( 6.71 usr + 0.00 sys = 6.71 CPU)
I suspect that if the regex were more complicated (and $foo were much longer), the difference wouldn't be quite as intense.


Comment on RE: RE: Blessables -- What Can You Make Into Objects?
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (4)
As of 2015-07-04 05:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (57 votes), past polls