← Index
NYTProf Performance Profile   « line view »
For /home/ss5/perl5/perlbrew/perls/perl-5.22.0/bin/benchmarkanything-storage
  Run on Mon Jan 29 16:55:34 2018
Reported on Mon Jan 29 16:57:07 2018

Filename/home/ss5/perl5/perlbrew/perls/perl-5.22.0/lib/site_perl/5.22.0/Search/Elasticsearch/Util.pm
StatementsExecuted 89108 statements in 189ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
70083364.7ms618msSearch::Elasticsearch::Util::::load_pluginSearch::Elasticsearch::Util::load_plugin
40044423.1ms23.1msSearch::Elasticsearch::Util::::parse_paramsSearch::Elasticsearch::Util::parse_params
20022118.4ms73.9msSearch::Elasticsearch::Util::::is_compatSearch::Elasticsearch::Util::is_compat
7008119.33ms9.33msSearch::Elasticsearch::Util::::CORE:substSearch::Elasticsearch::Util::CORE:subst (opcode)
3003328.78ms8.78msSearch::Elasticsearch::Util::::to_listSearch::Elasticsearch::Util::to_list
111611µs652µsSearch::Elasticsearch::Util::::BEGIN@4Search::Elasticsearch::Util::BEGIN@4
1119µs699µsSearch::Elasticsearch::Util::::BEGIN@3Search::Elasticsearch::Util::BEGIN@3
1118µs32µsSearch::Elasticsearch::Util::::BEGIN@5Search::Elasticsearch::Util::BEGIN@5
1117µs26µsSearch::Elasticsearch::Util::::BEGIN@6Search::Elasticsearch::Util::BEGIN@6
1117µs261µsSearch::Elasticsearch::Util::::BEGIN@7Search::Elasticsearch::Util::BEGIN@7
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;
21300ns$Search::Elasticsearch::Util::VERSION = '5.01';
3223µs21.39ms
# spent 699µs (9+689) within Search::Elasticsearch::Util::BEGIN@3 which was called: # once (9µs+689µs) by Search::Elasticsearch::BEGIN@5 at line 3
use Moo;
# spent 699µs making 1 call to Search::Elasticsearch::Util::BEGIN@3 # spent 689µs making 1 call to Moo::import
42175µs1652µs
# spent 652µs (611+42) within Search::Elasticsearch::Util::BEGIN@4 which was called: # once (611µs+42µs) by Search::Elasticsearch::BEGIN@5 at line 4
use Search::Elasticsearch::Error();
# spent 652µs making 1 call to Search::Elasticsearch::Util::BEGIN@4
5221µs255µs
# spent 32µs (8+24) within Search::Elasticsearch::Util::BEGIN@5 which was called: # once (8µs+24µs) by Search::Elasticsearch::BEGIN@5 at line 5
use Scalar::Util qw(blessed);
# spent 32µs making 1 call to Search::Elasticsearch::Util::BEGIN@5 # spent 24µs making 1 call to Exporter::import
6226µs244µs
# spent 26µs (7+18) within Search::Elasticsearch::Util::BEGIN@6 which was called: # once (7µs+18µs) by Search::Elasticsearch::BEGIN@5 at line 6
use Module::Runtime qw(compose_module_name is_module_name use_module);
# spent 26µs making 1 call to Search::Elasticsearch::Util::BEGIN@6 # spent 18µs making 1 call to Module::Runtime::import
717µs1253µs
# spent 261µs (7+253) within Search::Elasticsearch::Util::BEGIN@7 which was called: # once (7µs+253µs) by Search::Elasticsearch::BEGIN@5 at line 18
use Sub::Exporter -setup => {
# spent 253µs making 1 call to Sub::Exporter::__ANON__[Sub/Exporter.pm:337]
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 ]
181254µs1261µs};
# spent 261µs making 1 call to Search::Elasticsearch::Util::BEGIN@7
19
20#===================================
21
# spent 8.78ms within Search::Elasticsearch::Util::to_list which was called 3003 times, avg 3µs/call: # 1001 times (3.60ms+0s) by Search::Elasticsearch::Logger::LogAny::_build_trace_handle at line 25 of Search/Elasticsearch/Logger/LogAny.pm, avg 4µs/call # 1001 times (3.30ms+0s) by Search::Elasticsearch::Role::CxnPool::__ANON__[/home/ss5/perl5/perlbrew/perls/perl-5.22.0/lib/site_perl/5.22.0/Search/Elasticsearch/Role/CxnPool.pm:33] at line 27 of Search/Elasticsearch/Role/CxnPool.pm, avg 3µs/call # 1001 times (1.88ms+0s) by Search::Elasticsearch::Logger::LogAny::_build_log_handle at line 15 of Search/Elasticsearch/Logger/LogAny.pm, avg 2µs/call
sub to_list {
22#===================================
23300322.7ms grep {defined} ref $_[0] eq 'ARRAY' ? @{ $_[0] } : @_;
24}
25
26#===================================
27
# spent 23.1ms within Search::Elasticsearch::Util::parse_params which was called 4004 times, avg 6µs/call: # 1001 times (7.63ms+0s) by Search::Elasticsearch::new at line 31 of Search/Elasticsearch.pm, avg 8µs/call # 1001 times (6.14ms+0s) by Search::Elasticsearch::Role::Transport::tidy_request at line 29 of Search/Elasticsearch/Role/Transport.pm, avg 6µs/call # 1001 times (5.02ms+0s) by Search::Elasticsearch::Cxn::Factory::BUILDARGS at line 15 of Search/Elasticsearch/Cxn/Factory.pm, avg 5µs/call # 1001 times (4.29ms+0s) by Search::Elasticsearch::Role::Cxn::BUILDARGS at line 62 of Search/Elasticsearch/Role/Cxn.pm, avg 4µs/call
sub parse_params {
28#===================================
2940041.25ms my $self = shift;
3040041.07ms my %params;
3140043.90ms if ( @_ % 2 ) {
3220021.43ms throw(
33 "Param",
34 'Expecting a HASH ref or a list of key-value pairs',
35 { params => \@_ }
36 ) unless ref $_[0] eq 'HASH';
3720024.47ms %params = %{ shift() };
38 }
39 else {
4020024.17ms %params = @_;
41 }
42400428.9ms return ( $self, \%params );
43}
44
45#===================================
46
# spent 618ms (64.7+553) within Search::Elasticsearch::Util::load_plugin which was called 7008 times, avg 88µs/call: # 6006 times (58.5ms+422ms) by Search::Elasticsearch::new at line 40 of Search/Elasticsearch.pm, avg 80µs/call # 1001 times (6.16ms+128ms) by Search::Elasticsearch::Cxn::Factory::BUILDARGS at line 20 of Search/Elasticsearch/Cxn/Factory.pm, avg 134µs/call # once (8µs+2.48ms) by Search::Elasticsearch::Role::Client::Direct::_build_namespace at line 149 of Search/Elasticsearch/Role/Client/Direct.pm
sub load_plugin {
47#===================================
4870081.87ms my ( $base, $spec ) = @_;
4970082.59ms $spec ||= "+$base";
50700820.5ms70084.39ms return $spec if blessed $spec;
# spent 4.39ms making 7008 calls to Scalar::Util::blessed, avg 626ns/call
51
5270081.21ms my ( $class, $version );
5370082.86ms if ( ref $spec eq 'ARRAY' ) {
54 ( $class, $version ) = @$spec;
55 }
56 else {
5770071.45ms $class = $spec;
58 }
59
60700824.0ms11014192ms unless ( $class =~ s/\A\+// ) {
# spent 183ms making 4006 calls to Module::Runtime::compose_module_name, avg 46µs/call # spent 9.33ms making 7008 calls to Search::Elasticsearch::Util::CORE:subst, avg 1µs/call
61 $class = compose_module_name( $base, $class );
62 }
63
64700846.8ms7008357ms $version ? use_module( $class, $version ) : use_module($class);
# spent 357ms making 7008 calls to Module::Runtime::use_module, avg 51µs/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 73.9ms (18.4+55.5) within Search::Elasticsearch::Util::is_compat which was called 2002 times, avg 37µs/call: # 1001 times (14.3ms+28.5ms) by Search::Elasticsearch::Role::Transport::BUILD at line 21 of Search/Elasticsearch/Role/Transport.pm, avg 43µs/call # 1001 times (4.03ms+27.0ms) by Search::Elasticsearch::Role::Transport::BUILD at line 22 of Search/Elasticsearch/Role/Transport.pm, avg 31µs/call
sub is_compat {
94#===================================
952002990µs my ( $attr, $one, $two ) = @_;
9620024.77ms200240.0ms my $role
# spent 40.0ms making 2001 calls to Moo::Role::does_role, avg 20µs/call # spent 20µ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
101400413.3ms200215.5ms return if eval { $two->does($role); };
# spent 15.5ms making 2002 calls to Moo::Role::does_role, avg 8µ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 9.33ms within Search::Elasticsearch::Util::CORE:subst which was called 7008 times, avg 1µs/call: # 7008 times (9.33ms+0s) by Search::Elasticsearch::Util::load_plugin at line 60, avg 1µs/call
sub Search::Elasticsearch::Util::CORE:subst; # opcode