Committer: ailyin
LJSUP-8847 (refactor memcache profiling)U trunk/cgi-bin/LJ/MemCache.pm
Modified: trunk/cgi-bin/LJ/MemCache.pm =================================================================== --- trunk/cgi-bin/LJ/MemCache.pm 2011-05-19 06:15:59 UTC (rev 19082) +++ trunk/cgi-bin/LJ/MemCache.pm 2011-05-19 06:40:51 UTC (rev 19083) @@ -263,25 +263,25 @@ $conn->enable_compress(1); } -if ( $ENV{'LJ_MEMCACHE_PROFILE'} ) { - *_profile = sub { - my ( $funcname, $key, $result ) = @_; +my $enable_profiling = $ENV{'LJ_MEMCACHE_PROFILE'}; - unless ( defined $logfile ) { - open $logfile, ">>$ENV{LJHOME}/var/memcache-profile/$$.log" - or die "cannot open log: $!"; +sub _profile { + my ( $funcname, $key, $result ) = @_; - $logfile->autoflush; - } + return unless $enable_profiling; - $key =~ s/\b\d+\b/?/g; + unless ( defined $logfile ) { + open $logfile, ">>$ENV{LJHOME}/var/memcache-profile/$$.log" + or die "cannot open log: $!"; - print $logfile "$funcname($key) " . - ( defined $result ? '[hit]' : '[miss]' ) . - "\n"; - }; -} else { - *_profile = sub {}; + $logfile->autoflush; + } + + $key =~ s/\b\d+\b/?/g; + + print $logfile "$funcname($key) " . + ( defined $result ? '[hit]' : '[miss]' ) . + "\n"; } ### MAINTENANCE METHODS ### @@ -344,7 +344,7 @@ my $res = $conn->get( $key, @params ); - _profile( 'get', $key, $res ); + _profile( 'get', $key, $res ) if $enable_profiling; return $res; } @@ -365,7 +365,7 @@ my $res = $conn->gets($key); - _profile( 'gets', $key, $res ); + _profile( 'gets', $key, $res ) if $enable_profiling; return $res; } @@ -402,7 +402,7 @@ %ret = ( %ret, %$conn_ret ); } - _profile( 'get_multi', join(';', @keys_normal) ); + _profile( 'get_multi', join(';', @keys_normal) ) if $enable_profiling; return \%ret; } @@ -439,7 +439,7 @@ %ret = ( %ret, %$conn_ret ); } - _profile( 'gets_multi', join(';', @keys_normal) ); + _profile( 'gets_multi', join(';', @keys_normal) ) if $enable_profiling; return \%ret; } @@ -456,7 +456,7 @@ $key = $key->[1] if ref $key eq 'ARRAY'; - _profile( 'add', $key ); + _profile( 'add', $key ) if $enable_profiling; _set_compression( $conn, $key ); return $conn->add( $key, $value, $expire ); @@ -472,7 +472,7 @@ $key = $key->[1] if ref $key eq 'ARRAY'; - _profile( 'set', $key ); + _profile( 'set', $key ) if $enable_profiling; _set_compression( $conn, $key ); return $conn->set( $key, $value, $expire ); @@ -488,7 +488,7 @@ $key = $key->[1] if ref $key eq 'ARRAY'; - _profile( 'replace', $key ); + _profile( 'replace', $key ) if $enable_profiling; _set_compression( $conn, $key ); return $conn->replace( $key, $value, $expire ); @@ -504,7 +504,7 @@ $key = $key->[1] if ref $key eq 'ARRAY'; - _profile( 'incr', $key ); + _profile( 'incr', $key ) if $enable_profiling; return $conn->incr( $key, $value ); } @@ -519,7 +519,7 @@ $key = $key->[1] if ref $key eq 'ARRAY'; - _profile( 'decr', $key ); + _profile( 'decr', $key ) if $enable_profiling; return $conn->decr( $key, $value ); } @@ -534,7 +534,7 @@ $key = $key->[1] if ref $key eq 'ARRAY'; - _profile( 'append', $key ); + _profile( 'append', $key ) if $enable_profiling; my $res = $conn->append( $key, $value ); @@ -560,7 +560,7 @@ $key = $key->[1] if ref $key eq 'ARRAY'; - _profile( 'prepend', $key ); + _profile( 'prepend', $key ) if $enable_profiling; my $res = $conn->prepend( $key, $value ); @@ -584,7 +584,7 @@ $key = $key->[1] if ref $key eq 'ARRAY'; - _profile( 'delete', $key ); + _profile( 'delete', $key ) if $enable_profiling; my $res = $conn->delete( $key, $expire ); @@ -603,7 +603,7 @@ my $res = $conn->cas( $key, $cas, $value ); - _profile( 'cas', $key, $res ); + _profile( 'cas', $key, $res ) if $enable_profiling; return $res; }