← 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:08 2016

Filename/opt/flows/lib/lib/perl5/Search/Elasticsearch/Util.pm
StatementsExecuted 133 statements in 1.27ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1112.66ms8.49msSearch::Elasticsearch::Util::::BEGIN@7Search::Elasticsearch::Util::BEGIN@7
1111.06ms1.11msSearch::Elasticsearch::Util::::BEGIN@4Search::Elasticsearch::Util::BEGIN@4
943113µs152msSearch::Elasticsearch::Util::::load_pluginSearch::Elasticsearch::Util::load_plugin
66649µs49µsSearch::Elasticsearch::Util::::parse_paramsSearch::Elasticsearch::Util::parse_params
33232µs90µsSearch::Elasticsearch::Util::::is_compatSearch::Elasticsearch::Util::is_compat
11117µs1.15msSearch::Elasticsearch::Util::::BEGIN@3Search::Elasticsearch::Util::BEGIN@3
33212µs12µsSearch::Elasticsearch::Util::::to_listSearch::Elasticsearch::Util::to_list
91111µs11µsSearch::Elasticsearch::Util::::CORE:substSearch::Elasticsearch::Util::CORE:subst (opcode)
11110µs39µsSearch::Elasticsearch::Util::::BEGIN@5Search::Elasticsearch::Util::BEGIN@5
1118µs32µsSearch::Elasticsearch::Util::::BEGIN@6Search::Elasticsearch::Util::BEGIN@6
1116µs42µsSearch::Elasticsearch::Util::::__ANON__[:3]Search::Elasticsearch::Util::__ANON__[:3]
0000s0sSearch::Elasticsearch::Util::::new_errorSearch::Elasticsearch::Util::new_error
0000s0sSearch::Elasticsearch::Util::::throwSearch::Elasticsearch::Util::throw
0000s0sSearch::Elasticsearch::Util::::upgrade_errorSearch::Elasticsearch::Util::upgrade_error
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package Search::Elasticsearch::Util;
21700ns$Search::Elasticsearch::Util::VERSION = '2.02';
3441µs32.31ms
# spent 42µs (6+36) within Search::Elasticsearch::Util::__ANON__[/opt/flows/lib/lib/perl5/Search/Elasticsearch/Util.pm:3] which was called: # once (6µs+36µs) by import::into at line 34 of Import/Into.pm # spent 1.15ms (17µs+1.13) within Search::Elasticsearch::Util::BEGIN@3 which was called: # once (17µs+1.13ms) by Search::Elasticsearch::BEGIN@5 at line 3
use Moo;
# spent 1.15ms making 1 call to Search::Elasticsearch::Util::BEGIN@3 # spent 1.13ms making 1 call to Moo::import # spent 36µs making 1 call to strictures::import
42312µs11.11ms
# spent 1.11ms (1.06+52µs) within Search::Elasticsearch::Util::BEGIN@4 which was called: # once (1.06ms+52µs) by Search::Elasticsearch::BEGIN@5 at line 4
use Search::Elasticsearch::Error();
# spent 1.11ms making 1 call to Search::Elasticsearch::Util::BEGIN@4
5235µs268µs
# spent 39µs (10+29) within Search::Elasticsearch::Util::BEGIN@5 which was called: # once (10µs+29µs) by Search::Elasticsearch::BEGIN@5 at line 5
use Scalar::Util qw(blessed);
# spent 39µs making 1 call to Search::Elasticsearch::Util::BEGIN@5 # spent 29µs making 1 call to Exporter::import
6248µs255µs
# spent 32µs (8+24) within Search::Elasticsearch::Util::BEGIN@6 which was called: # once (8µs+24µs) by Search::Elasticsearch::BEGIN@5 at line 6
use Module::Runtime qw(compose_module_name is_module_name use_module);
# spent 32µs making 1 call to Search::Elasticsearch::Util::BEGIN@6 # spent 24µs making 1 call to Module::Runtime::import
718µs1313µs
# spent 8.49ms (2.66+5.83) within Search::Elasticsearch::Util::BEGIN@7 which was called: # once (2.66ms+5.83ms) by Search::Elasticsearch::BEGIN@5 at line 18
use Sub::Exporter -setup => {
8 exports => [ qw(
9 parse_params
10 to_list
11 load_plugin
12 new_error
13 throw
14 upgrade_error
15 is_compat
16 )
17 ]
181586µs18.49ms};
# spent 8.49ms making 1 call to Search::Elasticsearch::Util::BEGIN@7
19
20#===================================
21
# spent 12µs within Search::Elasticsearch::Util::to_list which was called 3 times, avg 4µs/call: # once (5µs+0s) by Search::Elasticsearch::Logger::LogAny::_build_trace_handle at line 25 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Logger/LogAny.pm # once (5µs+0s) by Search::Elasticsearch::Role::CxnPool::__ANON__[/opt/flows/lib/lib/perl5/Search/Elasticsearch/Role/CxnPool.pm:33] at line 27 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Role/CxnPool.pm # once (2µs+0s) by Search::Elasticsearch::Logger::LogAny::_build_log_handle at line 15 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Logger/LogAny.pm
sub to_list {
22#===================================
23318µs grep {defined} ref $_[0] eq 'ARRAY' ? @{ $_[0] } : @_;
24}
25
26#===================================
27
# spent 49µs within Search::Elasticsearch::Util::parse_params which was called 6 times, avg 8µs/call: # once (17µs+0s) by Search::Elasticsearch::new at line 31 of /opt/flows/lib/lib/perl5/Search/Elasticsearch.pm # once (7µs+0s) by Search::Elasticsearch::Role::Transport::tidy_request at line 29 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Role/Transport.pm # once (7µs+0s) by Search::Elasticsearch::Cxn::Factory::BUILDARGS at line 15 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Cxn/Factory.pm # once (6µs+0s) by Search::Elasticsearch::Role::Bulk::BUILDARGS at line 57 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Role/Bulk.pm # once (6µs+0s) by Search::Elasticsearch::Role::Cxn::HTTP::BUILDARGS at line 27 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Role/Cxn/HTTP.pm # once (6µs+0s) by Search::Elasticsearch::Role::Client::Direct::Main::bulk_helper at line 54 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Role/Client/Direct/Main.pm
sub parse_params {
28#===================================
2964µs my $self = shift;
3063µs my %params;
3168µs if ( @_ % 2 ) {
3232µs throw(
33 "Param",
34 'Expecting a HASH ref or a list of key-value pairs',
35 { params => \@_ }
36 ) unless ref $_[0] eq 'HASH';
3738µs %params = %{ shift() };
38 }
39 else {
4038µs %params = @_;
41 }
42628µs return ( $self, \%params );
43}
44
45#===================================
46
# spent 152ms (113µs+152) within Search::Elasticsearch::Util::load_plugin which was called 9 times, avg 16.9ms/call: # 6 times (78µs+108ms) by Search::Elasticsearch::new at line 39 of /opt/flows/lib/lib/perl5/Search/Elasticsearch.pm, avg 18.1ms/call # once (12µs+26.1ms) by Search::Elasticsearch::Cxn::Factory::BUILDARGS at line 19 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Cxn/Factory.pm # once (12µs+13.8ms) by Search::Elasticsearch::Role::Client::Direct::Main::_build_helper at line 46 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Role/Client/Direct/Main.pm # once (12µs+3.70ms) by Search::Elasticsearch::Role::Client::Direct::Main::_build_namespace at line 80 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Role/Client/Direct/Main.pm
sub load_plugin {
47#===================================
4893µs my ( $base, $spec ) = @_;
4994µs $spec ||= "+$base";
50930µs98µs return $spec if blessed $spec;
# spent 8µs making 9 calls to Scalar::Util::blessed, avg 878ns/call
51
5291µs my ( $class, $version );
5398µs if ( ref $spec eq 'ARRAY' ) {
54 ( $class, $version ) = @$spec;
55 }
56 else {
5783µs $class = $spec;
58 }
59
60945µs165.77ms unless ( $class =~ s/\A\+// ) {
# spent 5.76ms making 7 calls to Module::Runtime::compose_module_name, avg 822µs/call # spent 11µs making 9 calls to Search::Elasticsearch::Util::CORE:subst, avg 1µs/call
61 $class = compose_module_name( $base, $class );
62 }
63
64939µs9146ms $version ? use_module( $class, $version ) : use_module($class);
# spent 146ms making 9 calls to Module::Runtime::use_module, avg 16.3ms/call
65}
66
67#===================================
68sub throw {
69#===================================
70 my ( $type, $msg, $vars ) = @_;
71 die Search::Elasticsearch::Error->new( $type, $msg, $vars, 1 );
72}
73
74#===================================
75sub new_error {
76#===================================
77 my ( $type, $msg, $vars ) = @_;
78 return Search::Elasticsearch::Error->new( $type, $msg, $vars, 1 );
79}
80
81#===================================
82sub upgrade_error {
83#===================================
84 my ( $error, $vars ) = @_;
85 return
86 ref($error) && $error->isa('Search::Elasticsearch::Error')
87 ? $error
88 : Search::Elasticsearch::Error->new( "Internal", $error, $vars || {},
89 1 );
90}
91
92#===================================
93
# spent 90µs (32+57) within Search::Elasticsearch::Util::is_compat which was called 3 times, avg 30µs/call: # once (16µs+31µs) by Search::Elasticsearch::Role::Transport::BUILD at line 21 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Role/Transport.pm # once (8µs+16µs) by Search::Elasticsearch::Role::Client::Direct::Main::_build_helper at line 47 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Role/Client/Direct/Main.pm # once (8µs+11µs) by Search::Elasticsearch::Role::Transport::BUILD at line 22 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Role/Transport.pm
sub is_compat {
94#===================================
9532µs my ( $attr, $one, $two ) = @_;
9636µs330µs my $role
# spent 16µs making 2 calls to Role::Tiny::does_role, avg 8µs/call # spent 13µs making 1 call to Moo::Object::does
97 = $one->does('Search::Elasticsearch::Role::Is_Sync')
98 ? 'Search::Elasticsearch::Role::Is_Sync'
99 : 'Search::Elasticsearch::Role::Is_Async';
100
101616µs317µs return if eval { $two->does($role); };
# spent 17µs making 3 calls to Role::Tiny::does_role, avg 6µs/call
102 my $class = ref($two) || $two;
103 die "$attr ($class) does not do $role";
104}
105
10613µs1;
107
108# ABSTRACT: A utility class for internal use by Search::Elasticsearch
109
110__END__
 
# spent 11µs within Search::Elasticsearch::Util::CORE:subst which was called 9 times, avg 1µs/call: # 9 times (11µs+0s) by Search::Elasticsearch::Util::load_plugin at line 60, avg 1µs/call
sub Search::Elasticsearch::Util::CORE:subst; # opcode