Filename | /opt/flows/lib/lib/perl5/Search/Elasticsearch/Util.pm |
Statements | Executed 133 statements in 1.27ms |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
1 | 1 | 1 | 2.66ms | 8.49ms | BEGIN@7 | Search::Elasticsearch::Util::
1 | 1 | 1 | 1.06ms | 1.11ms | BEGIN@4 | Search::Elasticsearch::Util::
9 | 4 | 3 | 113µs | 152ms | load_plugin | Search::Elasticsearch::Util::
6 | 6 | 6 | 49µs | 49µs | parse_params | Search::Elasticsearch::Util::
3 | 3 | 2 | 32µs | 90µs | is_compat | Search::Elasticsearch::Util::
1 | 1 | 1 | 17µs | 1.15ms | BEGIN@3 | Search::Elasticsearch::Util::
3 | 3 | 2 | 12µs | 12µs | to_list | Search::Elasticsearch::Util::
9 | 1 | 1 | 11µs | 11µs | CORE:subst (opcode) | Search::Elasticsearch::Util::
1 | 1 | 1 | 10µs | 39µs | BEGIN@5 | Search::Elasticsearch::Util::
1 | 1 | 1 | 8µs | 32µs | BEGIN@6 | Search::Elasticsearch::Util::
1 | 1 | 1 | 6µs | 42µs | __ANON__[:3] | Search::Elasticsearch::Util::
0 | 0 | 0 | 0s | 0s | new_error | Search::Elasticsearch::Util::
0 | 0 | 0 | 0s | 0s | throw | Search::Elasticsearch::Util::
0 | 0 | 0 | 0s | 0s | upgrade_error | Search::Elasticsearch::Util::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | package Search::Elasticsearch::Util; | ||||
2 | 1 | 700ns | $Search::Elasticsearch::Util::VERSION = '2.02'; | ||
3 | 4 | 41µs | 3 | 2.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 # 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 |
4 | 2 | 312µs | 1 | 1.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 # spent 1.11ms making 1 call to Search::Elasticsearch::Util::BEGIN@4 |
5 | 2 | 35µs | 2 | 68µ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 # spent 39µs making 1 call to Search::Elasticsearch::Util::BEGIN@5
# spent 29µs making 1 call to Exporter::import |
6 | 2 | 48µs | 2 | 55µ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 # spent 32µs making 1 call to Search::Elasticsearch::Util::BEGIN@6
# spent 24µs making 1 call to Module::Runtime::import |
7 | 1 | 8µs | 1 | 313µ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 # spent 313µs making 1 call to Sub::Exporter::__ANON__[/opt/flows/lib/lib/perl5/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 | ] | ||||
18 | 1 | 586µs | 1 | 8.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 | ||||
22 | #=================================== | ||||
23 | 3 | 18µ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 | ||||
28 | #=================================== | ||||
29 | 6 | 4µs | my $self = shift; | ||
30 | 6 | 3µs | my %params; | ||
31 | 6 | 8µs | if ( @_ % 2 ) { | ||
32 | 3 | 2µs | throw( | ||
33 | "Param", | ||||
34 | 'Expecting a HASH ref or a list of key-value pairs', | ||||
35 | { params => \@_ } | ||||
36 | ) unless ref $_[0] eq 'HASH'; | ||||
37 | 3 | 8µs | %params = %{ shift() }; | ||
38 | } | ||||
39 | else { | ||||
40 | 3 | 8µs | %params = @_; | ||
41 | } | ||||
42 | 6 | 28µ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 | ||||
47 | #=================================== | ||||
48 | 9 | 3µs | my ( $base, $spec ) = @_; | ||
49 | 9 | 4µs | $spec ||= "+$base"; | ||
50 | 9 | 30µs | 9 | 8µs | return $spec if blessed $spec; # spent 8µs making 9 calls to Scalar::Util::blessed, avg 878ns/call |
51 | |||||
52 | 9 | 1µs | my ( $class, $version ); | ||
53 | 9 | 8µs | if ( ref $spec eq 'ARRAY' ) { | ||
54 | ( $class, $version ) = @$spec; | ||||
55 | } | ||||
56 | else { | ||||
57 | 8 | 3µs | $class = $spec; | ||
58 | } | ||||
59 | |||||
60 | 9 | 45µs | 16 | 5.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 | |||||
64 | 9 | 39µs | 9 | 146ms | $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 | #=================================== | ||||
68 | sub throw { | ||||
69 | #=================================== | ||||
70 | my ( $type, $msg, $vars ) = @_; | ||||
71 | die Search::Elasticsearch::Error->new( $type, $msg, $vars, 1 ); | ||||
72 | } | ||||
73 | |||||
74 | #=================================== | ||||
75 | sub new_error { | ||||
76 | #=================================== | ||||
77 | my ( $type, $msg, $vars ) = @_; | ||||
78 | return Search::Elasticsearch::Error->new( $type, $msg, $vars, 1 ); | ||||
79 | } | ||||
80 | |||||
81 | #=================================== | ||||
82 | sub 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 | ||||
94 | #=================================== | ||||
95 | 3 | 2µs | my ( $attr, $one, $two ) = @_; | ||
96 | 3 | 6µs | 3 | 30µ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 | |||||
101 | 6 | 16µs | 3 | 17µ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 | |||||
106 | 1 | 3µs | 1; | ||
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 |