The following Benchmarked code snipped shows a 10-15% performance increase by simply wrapping the log calls. Note that it is just a scalar being logged (suppressed, actually), not even an array, an especially not a super-long array. I don't find it to be particularly bloated either:
#!/usr/bin/perl use strict; use warnings; use Log::Log4perl; use Benchmark qw(cmpthese); use Config; my $conf = q( log4perl.category.bench = INFO, ScreenAppender log4perl.appender.ScreenAppender = Log::Log4perl::Appender:: +Screen log4perl.appender.ScreenAppender.stderr = 1 log4perl.appender.ScreenAppender.layout = PatternLayout log4perl.appender.ScreenAppender.layout.ConversionPattern=[%p] %d %F +:%L - %m%n log4perl.appender.ScreenAppender.Threshold = DEBUG ); Log::Log4perl::init(\$conf); my $log = Log::Log4perl::get_logger("bench"); sub fib_log_buffer { my @fibonacci = (0, 1); my ($n, $sum) = (1, 0); while ($n < 1_000_000) { $log->debug(qq{n:$n}); $n = $fibonacci[$#fibonacci] + $fibonacci[ $#fibonacci - 1 ]; push @fibonacci, $n; $sum += $n if (($n % 2) == 0); } $log->debug(qq{n:$n}); return $sum; } sub fib_log_buffer_is_chk { my @fibonacci = (0, 1); my ($n, $sum) = (1, 0); while ($n < 1_000_000) { $log->debug(qq{n:$n}) if $log->is_debug(); $n = $fibonacci[$#fibonacci] + $fibonacci[ $#fibonacci - 1 ]; push @fibonacci, $n; $sum += $n if (($n % 2) == 0); } $log->debug(qq{n:$n}) if $log->is_debug(); return $sum; } # ------ main ------ print $Config{archname} ."\n"; cmpthese( -1, { 'fib_log_buffer' => sub { fib_log_buffer() }, 'fib_log_buffer_is_chk' => sub { fib_log_buffer_is_chk() }, } ); __END__
$ perl l4p_bench.pl x86_64-linux Rate fib_log_buffer fib_log_buffer_is +_chk fib_log_buffer 15605/s -- +-11% fib_log_buffer_is_chk 17454/s 12% + --
--
No matter how great and destructive your problems may seem now, remember, you've probably only seen the tip of them. [1]

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

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.