← Index
NYTProf Performance Profile   « line view »
For flows_to_es.pl
  Run on Mon May 9 23:27:59 2016
Reported on Mon May 9 23:28:09 2016

Filename/opt/flows/lib/lib/perl5/Log/Any.pm
StatementsExecuted 53 statements in 967µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1111.31ms1.38msLog::Any::::BEGIN@10 Log::Any::BEGIN@10
1111.11ms1.49msLog::Any::::BEGIN@11 Log::Any::BEGIN@11
22166µs2.62msLog::Any::::get_logger Log::Any::get_logger
11119µs19µsSearch::Elasticsearch::Logger::LogAny::::BEGIN@1Search::Elasticsearch::Logger::LogAny::BEGIN@1
11111µs22µsLog::Any::::BEGIN@72 Log::Any::BEGIN@72
1119µs14µsSearch::Elasticsearch::Logger::LogAny::::BEGIN@3.6Search::Elasticsearch::Logger::LogAny::BEGIN@3.6
1119µs13µsLog::Any::::import Log::Any::import
1119µs22µsLog::Any::::BEGIN@63 Log::Any::BEGIN@63
1118µs22µsSearch::Elasticsearch::Logger::LogAny::::BEGIN@2Search::Elasticsearch::Logger::LogAny::BEGIN@2
2116µs6µsLog::Any::::_get_proxy_class Log::Any::_get_proxy_class
1114µs4µsLog::Any::::_export_to_caller Log::Any::_export_to_caller
2113µs3µsLog::Any::::_manager Log::Any::_manager
0000s0sLog::Any::::set_adapter Log::Any::set_adapter
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1256µs119µs
# spent 19µs within Search::Elasticsearch::Logger::LogAny::BEGIN@1 which was called: # once (19µs+0s) by Search::Elasticsearch::Logger::LogAny::BEGIN@8 at line 1
use 5.008001;
# spent 19µs making 1 call to Search::Elasticsearch::Logger::LogAny::BEGIN@1
2228µs236µs
# spent 22µs (8+14) within Search::Elasticsearch::Logger::LogAny::BEGIN@2 which was called: # once (8µs+14µs) by Search::Elasticsearch::Logger::LogAny::BEGIN@8 at line 2
use strict;
# spent 22µs making 1 call to Search::Elasticsearch::Logger::LogAny::BEGIN@2 # spent 14µs making 1 call to strict::import
3259µs219µs
# spent 14µs (9+5) within Search::Elasticsearch::Logger::LogAny::BEGIN@3.6 which was called: # once (9µs+5µs) by Search::Elasticsearch::Logger::LogAny::BEGIN@8 at line 3
use warnings;
# spent 14µs making 1 call to Search::Elasticsearch::Logger::LogAny::BEGIN@3.6 # spent 5µs making 1 call to warnings::import
4
5package Log::Any;
6
7# ABSTRACT: Bringing loggers and listeners together
81700nsour $VERSION = '1.040';
9
102117µs11.38ms
# spent 1.38ms (1.31+73µs) within Log::Any::BEGIN@10 which was called: # once (1.31ms+73µs) by Search::Elasticsearch::Logger::LogAny::BEGIN@8 at line 10
use Log::Any::Manager;
# spent 1.38ms making 1 call to Log::Any::BEGIN@10
1119µs1101µs
# spent 1.49ms (1.11+379µs) within Log::Any::BEGIN@11 which was called: # once (1.11ms+379µs) by Search::Elasticsearch::Logger::LogAny::BEGIN@8 at line 19
use Log::Any::Adapter::Util qw(
# spent 101µs making 1 call to Exporter::import
12 require_dynamic
13 detection_aliases
14 detection_methods
15 log_level_aliases
16 logging_aliases
17 logging_and_detection_methods
18 logging_methods
191284µs11.49ms);
# spent 1.49ms making 1 call to Log::Any::BEGIN@11
20
21# This is overridden in Log::Any::Test
2210sour $OverrideDefaultAdapterClass;
2310sour $OverrideDefaultProxyClass;
24
25# singleton and accessor
26{
2723µs16µs my $manager = Log::Any::Manager->new();
# spent 6µs making 1 call to Log::Any::Manager::new
2826µs
# spent 3µs within Log::Any::_manager which was called 2 times, avg 2µs/call: # 2 times (3µs+0s) by Log::Any::get_logger at line 82, avg 2µs/call
sub _manager { return $manager }
29}
30
31
# spent 13µs (9+4) within Log::Any::import which was called: # once (9µs+4µs) by Log::Any::Adapter::BEGIN@10 at line 10 of /opt/flows/lib/lib/perl5/Log/Any/Adapter.pm
sub import {
321600ns my $class = shift;
331600ns my $caller = caller();
34
3511µs my @export_params = ( $caller, @_ );
3614µs14µs $class->_export_to_caller(@export_params);
# spent 4µs making 1 call to Log::Any::_export_to_caller
37}
38
39
# spent 4µs within Log::Any::_export_to_caller which was called: # once (4µs+0s) by Log::Any::import at line 36
sub _export_to_caller {
401300ns my $class = shift;
411100ns my $caller = shift;
42
43 # Parse parameters passed to 'use Log::Any'
441100ns my $saw_log_param;
451200ns my @params;
461900ns while ( my $param = shift @_ ) {
47 if ( $param eq '$log' ) {
48 $saw_log_param = 1; # defer until later
49 next; # singular
50 }
51 else {
52 push @params, $param, shift @_; # pairwise
53 }
54 }
55
561800ns unless ( @params % 2 == 0 ) {
57 require Carp;
58 Carp::croak("Argument list not balanced: @params");
59 }
60
61 # get logger if one was requested
6215µs if ($saw_log_param) {
632100µs235µs
# spent 22µs (9+13) within Log::Any::BEGIN@63 which was called: # once (9µs+13µs) by Search::Elasticsearch::Logger::LogAny::BEGIN@8 at line 63
no strict 'refs';
# spent 22µs making 1 call to Log::Any::BEGIN@63 # spent 13µs making 1 call to strict::unimport
64 my $proxy = $class->get_logger( category => $caller, @params );
65 my $varname = "$caller\::log";
66 *$varname = \$proxy;
67 }
68}
69
70
# spent 2.62ms (66µs+2.55) within Log::Any::get_logger which was called 2 times, avg 1.31ms/call: # once (37µs+2.43ms) by Search::Elasticsearch::Logger::LogAny::_build_log_handle at line 18 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Logger/LogAny.pm # once (29µs+122µs) by Search::Elasticsearch::Logger::LogAny::_build_trace_handle at line 28 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Logger/LogAny.pm
sub get_logger {
7124µs my ( $class, %params ) = @_;
722230µs233µs
# spent 22µs (11+11) within Log::Any::BEGIN@72 which was called: # once (11µs+11µs) by Search::Elasticsearch::Logger::LogAny::BEGIN@8 at line 72
no warnings 'once';
# spent 22µs making 1 call to Log::Any::BEGIN@72 # spent 11µs making 1 call to warnings::unimport
73
7426µs26µs my $proxy_class = $class->_get_proxy_class( delete $params{proxy_class} );
# spent 6µs making 2 calls to Log::Any::_get_proxy_class, avg 3µs/call
7523µs my $category =
76 defined $params{category} ? delete $params{'category'} : caller;
77
7821µs if ( my $default = delete $params{'default_adapter'} ) {
79 $class->_manager->set_default( $category, $default );
80 }
81
82210µs41.29ms my $adapter = $class->_manager->get_adapter( $category );
# spent 1.29ms making 2 calls to Log::Any::Manager::get_adapter, avg 644µs/call # spent 3µs making 2 calls to Log::Any::_manager, avg 2µs/call
83
8425µs21.23ms require_dynamic($proxy_class);
# spent 1.23ms making 2 calls to Log::Any::Adapter::Util::require_dynamic, avg 614µs/call
85216µs229µs return $proxy_class->new(
# spent 29µs making 2 calls to Log::Any::Proxy::new, avg 14µs/call
86 %params, adapter => $adapter, category => $category,
87 );
88}
89
90
# spent 6µs within Log::Any::_get_proxy_class which was called 2 times, avg 3µs/call: # 2 times (6µs+0s) by Log::Any::get_logger at line 74, avg 3µs/call
sub _get_proxy_class {
9121µs my ( $self, $proxy_name ) = @_;
9221µs return $Log::Any::OverrideDefaultProxyClass
93 if $Log::Any::OverrideDefaultProxyClass;
9428µs return "Log::Any::Proxy" unless $proxy_name;
95 my $proxy_class = (
96 substr( $proxy_name, 0, 1 ) eq '+'
97 ? substr( $proxy_name, 1 )
98 : "Log::Any::Proxy::$proxy_name"
99 );
100 return $proxy_class;
101}
102
103# For backward compatibility
104sub set_adapter {
105 my $class = shift;
106 Log::Any->_manager->set(@_);
107}
108
10914µs1;
110
111__END__