Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

Re^3: Perl::Critic policy for common Log::Log4perl mistake

by jethro (Monsignor)
on Nov 08, 2011 at 18:05 UTC ( #936837=note: print w/replies, xml ) Need Help??

in reply to Re^2: Perl::Critic policy for common Log::Log4perl mistake
in thread Perl::Critic policy for common Log::Log4perl mistake

Then add this to your test:

sub fib_no_log { my @fibonacci = (0, 1); my ($n, $sum) = (1, 0); while ($n < 1_000_000) { $n = $fibonacci[$#fibonacci] + $fibonacci[ $#fibonacci - 1 ]; push @fibonacci, $n; $sum += $n if (($n % 2) == 0); } return $sum; } ... 'fib_no_log' => sub { fib_no_log() },

and you will get this result:

Rate fib_log_buffer fib_log_buffer_is_chk f +ib_no_log fib_log_buffer 11712/s -- -13% + -68% fib_log_buffer_is_chk 13525/s 15% -- + -63% fib_no_log 36540/s 212% 170% + --

Why? Because even the call to is_debug takes twice as long as the rest, the "meat" of your loop. Obviously you should have a perl_critic rule to warn from use of log4perl at all. Or avoid artificial benchmarks ;-)

Replies are listed 'Best First'.
Re^4: Perl::Critic policy for common Log::Log4perl mistake
by andreas1234567 (Vicar) on Nov 09, 2011 at 05:40 UTC
    Having logging and the ability to alter logging in run-time is in this case an important requirement. Removing logging is of course faster, but also makes the code irrelevant.

    The objective is to allow for logging and make it reasonably fast.

    No matter how great and destructive your problems may seem now, remember, you've probably only seen the tip of them. [1]

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://936837]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (4)
As of 2017-09-23 13:40 GMT
Find Nodes?
    Voting Booth?
    During the recent solar eclipse, I:

    Results (272 votes). Check out past polls.