← 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/Role/Client/Direct.pm
StatementsExecuted 53538 statements in 168ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
10011152.4ms79.5msSearch::Elasticsearch::Role::Client::Direct::::_parse_path Search::Elasticsearch::Role::Client::Direct::_parse_path
10011134.6ms123msSearch::Elasticsearch::Role::Client::Direct::::try {...} Search::Elasticsearch::Role::Client::Direct::try {...}
10011123.6ms213msSearch::Elasticsearch::Role::Client::Direct::::parse_request Search::Elasticsearch::Role::Client::Direct::parse_request
1001216.93ms20.8sSearch::Elasticsearch::Role::Client::Direct::::__ANON__[:140] Search::Elasticsearch::Role::Client::Direct::__ANON__[:140]
2225.33ms6.04msSearch::Elasticsearch::Role::Client::Direct::::_install_api Search::Elasticsearch::Role::Client::Direct::_install_api
1001115.11ms5.11msSearch::Elasticsearch::Role::Client::Direct::::_parse_qs Search::Elasticsearch::Role::Client::Direct::_parse_qs
1001114.23ms4.23msSearch::Elasticsearch::Role::Client::Direct::::_parse_body Search::Elasticsearch::Role::Client::Direct::_parse_body
111235µs383µsSearch::Elasticsearch::Role::Client::Direct::::BEGIN@9 Search::Elasticsearch::Role::Client::Direct::BEGIN@9
2472198µs98µsSearch::Elasticsearch::Role::Client::Direct::::CORE:regcomp Search::Elasticsearch::Role::Client::Direct::CORE:regcomp (opcode)
2461185µs85µsSearch::Elasticsearch::Role::Client::Direct::::CORE:match Search::Elasticsearch::Role::Client::Direct::CORE:match (opcode)
11124µs3.16msSearch::Elasticsearch::Role::Client::Direct::::_build_namespace Search::Elasticsearch::Role::Client::Direct::_build_namespace
1119µs482µsSearch::Elasticsearch::Role::Client::Direct::::BEGIN@3 Search::Elasticsearch::Role::Client::Direct::BEGIN@3
1118µs17µsSearch::Elasticsearch::Role::Client::Direct::::BEGIN@8 Search::Elasticsearch::Role::Client::Direct::BEGIN@8
1117µs19µsSearch::Elasticsearch::Role::Client::Direct::::BEGIN@53 Search::Elasticsearch::Role::Client::Direct::BEGIN@53
1116µs34µsSearch::Elasticsearch::Role::Client::Direct::::BEGIN@7 Search::Elasticsearch::Role::Client::Direct::BEGIN@7
1116µs152µsSearch::Elasticsearch::Role::Client::Direct::::BEGIN@5 Search::Elasticsearch::Role::Client::Direct::BEGIN@5
1115µs177µsSearch::Elasticsearch::Role::Client::Direct::::BEGIN@10 Search::Elasticsearch::Role::Client::Direct::BEGIN@10
2112µs2µsSearch::Elasticsearch::Role::Client::Direct::::CORE:qr Search::Elasticsearch::Role::Client::Direct::CORE:qr (opcode)
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::analyzeSearch::Elasticsearch::Client::5_0::Direct::Indices::analyze
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::clear_cacheSearch::Elasticsearch::Client::5_0::Direct::Indices::clear_cache
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::closeSearch::Elasticsearch::Client::5_0::Direct::Indices::close
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::createSearch::Elasticsearch::Client::5_0::Direct::Indices::create
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::deleteSearch::Elasticsearch::Client::5_0::Direct::Indices::delete
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::delete_aliasSearch::Elasticsearch::Client::5_0::Direct::Indices::delete_alias
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::delete_templateSearch::Elasticsearch::Client::5_0::Direct::Indices::delete_template
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::existsSearch::Elasticsearch::Client::5_0::Direct::Indices::exists
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::exists_aliasSearch::Elasticsearch::Client::5_0::Direct::Indices::exists_alias
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::exists_templateSearch::Elasticsearch::Client::5_0::Direct::Indices::exists_template
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::exists_typeSearch::Elasticsearch::Client::5_0::Direct::Indices::exists_type
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::flushSearch::Elasticsearch::Client::5_0::Direct::Indices::flush
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::flush_syncedSearch::Elasticsearch::Client::5_0::Direct::Indices::flush_synced
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::forcemergeSearch::Elasticsearch::Client::5_0::Direct::Indices::forcemerge
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::getSearch::Elasticsearch::Client::5_0::Direct::Indices::get
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::get_aliasSearch::Elasticsearch::Client::5_0::Direct::Indices::get_alias
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::get_field_mappingSearch::Elasticsearch::Client::5_0::Direct::Indices::get_field_mapping
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::get_mappingSearch::Elasticsearch::Client::5_0::Direct::Indices::get_mapping
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::get_settingsSearch::Elasticsearch::Client::5_0::Direct::Indices::get_settings
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::get_templateSearch::Elasticsearch::Client::5_0::Direct::Indices::get_template
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::get_upgradeSearch::Elasticsearch::Client::5_0::Direct::Indices::get_upgrade
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::openSearch::Elasticsearch::Client::5_0::Direct::Indices::open
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::put_aliasSearch::Elasticsearch::Client::5_0::Direct::Indices::put_alias
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::put_mappingSearch::Elasticsearch::Client::5_0::Direct::Indices::put_mapping
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::put_settingsSearch::Elasticsearch::Client::5_0::Direct::Indices::put_settings
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::put_templateSearch::Elasticsearch::Client::5_0::Direct::Indices::put_template
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::recoverySearch::Elasticsearch::Client::5_0::Direct::Indices::recovery
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::refreshSearch::Elasticsearch::Client::5_0::Direct::Indices::refresh
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::rolloverSearch::Elasticsearch::Client::5_0::Direct::Indices::rollover
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::segmentsSearch::Elasticsearch::Client::5_0::Direct::Indices::segments
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::shard_storesSearch::Elasticsearch::Client::5_0::Direct::Indices::shard_stores
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::shrinkSearch::Elasticsearch::Client::5_0::Direct::Indices::shrink
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::statsSearch::Elasticsearch::Client::5_0::Direct::Indices::stats
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::update_aliasesSearch::Elasticsearch::Client::5_0::Direct::Indices::update_aliases
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::upgradeSearch::Elasticsearch::Client::5_0::Direct::Indices::upgrade
0000s0sSearch::Elasticsearch::Client::5_0::Direct::Indices::::validate_querySearch::Elasticsearch::Client::5_0::Direct::Indices::validate_query
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::bulk Search::Elasticsearch::Client::5_0::Direct::bulk
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::clear_scroll Search::Elasticsearch::Client::5_0::Direct::clear_scroll
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::count Search::Elasticsearch::Client::5_0::Direct::count
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::count_percolate Search::Elasticsearch::Client::5_0::Direct::count_percolate
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::create Search::Elasticsearch::Client::5_0::Direct::create
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::delete Search::Elasticsearch::Client::5_0::Direct::delete
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::delete_by_query Search::Elasticsearch::Client::5_0::Direct::delete_by_query
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::delete_script Search::Elasticsearch::Client::5_0::Direct::delete_script
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::delete_template Search::Elasticsearch::Client::5_0::Direct::delete_template
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::exists Search::Elasticsearch::Client::5_0::Direct::exists
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::explain Search::Elasticsearch::Client::5_0::Direct::explain
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::field_stats Search::Elasticsearch::Client::5_0::Direct::field_stats
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::get Search::Elasticsearch::Client::5_0::Direct::get
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::get_script Search::Elasticsearch::Client::5_0::Direct::get_script
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::get_source Search::Elasticsearch::Client::5_0::Direct::get_source
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::get_template Search::Elasticsearch::Client::5_0::Direct::get_template
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::index Search::Elasticsearch::Client::5_0::Direct::index
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::info Search::Elasticsearch::Client::5_0::Direct::info
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::mget Search::Elasticsearch::Client::5_0::Direct::mget
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::mpercolate Search::Elasticsearch::Client::5_0::Direct::mpercolate
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::msearch Search::Elasticsearch::Client::5_0::Direct::msearch
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::msearch_template Search::Elasticsearch::Client::5_0::Direct::msearch_template
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::mtermvectors Search::Elasticsearch::Client::5_0::Direct::mtermvectors
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::percolate Search::Elasticsearch::Client::5_0::Direct::percolate
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::ping Search::Elasticsearch::Client::5_0::Direct::ping
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::put_script Search::Elasticsearch::Client::5_0::Direct::put_script
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::put_template Search::Elasticsearch::Client::5_0::Direct::put_template
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::reindex Search::Elasticsearch::Client::5_0::Direct::reindex
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::reindex_rethrottle Search::Elasticsearch::Client::5_0::Direct::reindex_rethrottle
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::render_search_template Search::Elasticsearch::Client::5_0::Direct::render_search_template
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::scroll Search::Elasticsearch::Client::5_0::Direct::scroll
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::search Search::Elasticsearch::Client::5_0::Direct::search
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::search_shards Search::Elasticsearch::Client::5_0::Direct::search_shards
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::search_template Search::Elasticsearch::Client::5_0::Direct::search_template
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::suggest Search::Elasticsearch::Client::5_0::Direct::suggest
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::termvectors Search::Elasticsearch::Client::5_0::Direct::termvectors
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::update Search::Elasticsearch::Client::5_0::Direct::update
0000s0sSearch::Elasticsearch::Client::5_0::Direct::::update_by_query Search::Elasticsearch::Client::5_0::Direct::update_by_query
0000s0sSearch::Elasticsearch::Role::Client::Direct::::__ANON__[:29] Search::Elasticsearch::Role::Client::Direct::__ANON__[:29]
0000s0sSearch::Elasticsearch::Role::Client::Direct::::__ANON__[:38] Search::Elasticsearch::Role::Client::Direct::__ANON__[:38]
0000s0sSearch::Elasticsearch::Role::Client::Direct::::_build_helper Search::Elasticsearch::Role::Client::Direct::_build_helper
0000s0sSearch::Elasticsearch::Role::Client::Direct::::catch {...} Search::Elasticsearch::Role::Client::Direct::catch {...}
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::Role::Client::Direct;
21300ns$Search::Elasticsearch::Role::Client::Direct::VERSION = '5.01';
3225µs2954µs
# spent 482µs (9+472) within Search::Elasticsearch::Role::Client::Direct::BEGIN@3 which was called: # once (9µs+472µs) by Module::Runtime::require_module at line 3
use Moo::Role;
# spent 482µs making 1 call to Search::Elasticsearch::Role::Client::Direct::BEGIN@3 # spent 472µs making 1 call to Moo::Role::import
41800ns11.25mswith 'Search::Elasticsearch::Role::Client';
# spent 1.25ms making 1 call to Moo::Role::with
5220µs2299µs
# spent 152µs (6+147) within Search::Elasticsearch::Role::Client::Direct::BEGIN@5 which was called: # once (6µs+147µs) by Module::Runtime::require_module at line 5
use Search::Elasticsearch::Util qw(load_plugin is_compat throw);
# spent 152µs making 1 call to Search::Elasticsearch::Role::Client::Direct::BEGIN@5 # spent 147µs making 1 call to Sub::Exporter::__ANON__[Sub/Exporter.pm:337]
6
7219µs262µs
# spent 34µs (6+28) within Search::Elasticsearch::Role::Client::Direct::BEGIN@7 which was called: # once (6µs+28µs) by Module::Runtime::require_module at line 7
use Try::Tiny;
# spent 34µs making 1 call to Search::Elasticsearch::Role::Client::Direct::BEGIN@7 # spent 28µs making 1 call to Exporter::import
8328µs226µs
# spent 17µs (8+9) within Search::Elasticsearch::Role::Client::Direct::BEGIN@8 which was called: # once (8µs+9µs) by Module::Runtime::require_module at line 8
use Package::Stash 0.34 ();
# spent 17µs making 1 call to Search::Elasticsearch::Role::Client::Direct::BEGIN@8 # spent 9µs making 1 call to UNIVERSAL::VERSION
9269µs2407µs
# spent 383µs (235+148) within Search::Elasticsearch::Role::Client::Direct::BEGIN@9 which was called: # once (235µs+148µs) by Module::Runtime::require_module at line 9
use Any::URI::Escape qw(uri_escape);
# spent 383µs making 1 call to Search::Elasticsearch::Role::Client::Direct::BEGIN@9 # spent 24µs making 1 call to Exporter::import
102144µs2350µs
# spent 177µs (5+172) within Search::Elasticsearch::Role::Client::Direct::BEGIN@10 which was called: # once (5µs+172µs) by Module::Runtime::require_module at line 10
use namespace::clean;
# spent 177µs making 1 call to Search::Elasticsearch::Role::Client::Direct::BEGIN@10 # spent 172µs making 1 call to namespace::clean::import
11
12#===================================
13
# spent 213ms (23.6+189) within Search::Elasticsearch::Role::Client::Direct::parse_request which was called 1001 times, avg 213µs/call: # 1001 times (23.6ms+189ms) by Search::Elasticsearch::Role::Client::perform_request at line 15 of Search/Elasticsearch/Role/Client.pm, avg 213µs/call
sub parse_request {
14#===================================
151001442µs my $self = shift;
161001674µs my $defn = shift || {};
1710013.32ms my $params = { ref $_[0] ? %{ shift() } : @_ };
18
191001219µs my $request;
20
# spent 123ms (34.6+88.9) within Search::Elasticsearch::Role::Client::Direct::try {...} which was called 1001 times, avg 123µs/call: # 1001 times (34.6ms+88.9ms) by Try::Tiny::try at line 92 of Try/Tiny.pm, avg 123µs/call
try {
21 $request = {
22 ignore => delete $params->{ignore} || [],
23 method => $defn->{method} || 'GET',
24 serialize => $defn->{serialize} || 'std',
25 path => $self->_parse_path( $defn, $params ),
26 body => $self->_parse_body( $defn->{body}, $params ),
27100119.8ms300388.9ms qs => $self->_parse_qs( $defn->{qs}, $params ),
# spent 79.5ms making 1001 calls to Search::Elasticsearch::Role::Client::Direct::_parse_path, avg 79µs/call # spent 5.11ms making 1001 calls to Search::Elasticsearch::Role::Client::Direct::_parse_qs, avg 5µs/call # spent 4.23ms making 1001 calls to Search::Elasticsearch::Role::Client::Direct::_parse_body, avg 4µs/call
28 };
29 }
30 catch {
31 chomp $_;
32 my $name = $defn->{name} || '<unknown method>';
33 $self->logger->throw_error( 'Param',
34 "$_ in ($name) request. "
35 . "See docs at: http://www.elastic.co/guide/en/elasticsearch/reference/current/"
36 . $defn->{doc}
37 . '.html' );
38100116.7ms2002189ms };
# spent 157ms making 1001 calls to Try::Tiny::try, avg 157µs/call # spent 31.9ms making 1001 calls to Try::Tiny::catch, avg 32µs/call
39100121.0ms return $request;
40}
41
42#===================================
43
# spent 79.5ms (52.4+27.2) within Search::Elasticsearch::Role::Client::Direct::_parse_path which was called 1001 times, avg 79µs/call: # 1001 times (52.4ms+27.2ms) by Search::Elasticsearch::Role::Client::Direct::try {...} at line 27, avg 79µs/call
sub _parse_path {
44#===================================
451001649µs my ( $self, $defn, $params ) = @_;
46 return delete $params->{path}
471001606µs if $params->{path};
481001949µs my $paths = $defn->{paths};
491001632µs my $parts = $defn->{parts};
50
511001285µs my %args;
521001743µs keys %$parts;
532358µs231µs
# spent 19µs (7+12) within Search::Elasticsearch::Role::Client::Direct::BEGIN@53 which was called: # once (7µs+12µs) by Module::Runtime::require_module at line 53
no warnings 'uninitialized';
# spent 19µs making 1 call to Search::Elasticsearch::Role::Client::Direct::BEGIN@53 # spent 12µs making 1 call to warnings::unimport
5410014.74ms while ( my ( $key, $req ) = each %$parts ) {
5530011.40ms my $val = delete $params->{$key};
563001979µs if ( ref $val eq 'ARRAY' ) {
57 die "Param ($key) must contain a single value\n"
58 if @$val > 1 and not $req->{multi};
59 $val = join ",", @$val;
60 }
613001800µs if ( !length $val ) {
62 die "Missing required param ($key)\n"
63 if $req->{required};
64 next;
65 }
6630019.78ms30012.08ms utf8::encode($val);
# spent 2.08ms making 3001 calls to utf8::encode, avg 692ns/call
6730014.62ms300125.1ms $args{$key} = uri_escape($val);
# spent 25.1ms making 3001 calls to URI::Escape::uri_escape, avg 8µs/call
68 }
691001836µsPATH: for my $path (@$paths) {
7010012.33ms my @keys = keys %{ $path->[0] };
711001766µs next PATH unless @keys == keys %args;
721001899µs for (@keys) {
7330011.13ms next PATH unless exists $args{$_};
74 }
7510011.64ms my ( $pos, @parts ) = @$path;
7610011.43ms for ( keys %$pos ) {
7730011.84ms $parts[ $pos->{$_} ] = $args{$_};
78 }
7910014.69ms return join "/", '', @parts;
80 }
81
82 throw(
83 'Internal',
84 "Couldn't determine path",
85 { params => $params, defn => $defn }
86 );
87}
88
89#===================================
90
# spent 4.23ms within Search::Elasticsearch::Role::Client::Direct::_parse_body which was called 1001 times, avg 4µs/call: # 1001 times (4.23ms+0s) by Search::Elasticsearch::Role::Client::Direct::try {...} at line 27, avg 4µs/call
sub _parse_body {
91#===================================
921001526µs my ( $self, $defn, $params ) = @_;
931001549µs if ( defined $defn ) {
94 die("Missing required param (body)\n")
9510001.30ms if $defn->{required} && !$params->{body};
96100016.3ms return delete $params->{body};
97 }
981600ns die("Unknown param (body)\n") if $params->{body};
9912µs return undef;
100}
101
102#===================================
103
# spent 5.11ms within Search::Elasticsearch::Role::Client::Direct::_parse_qs which was called 1001 times, avg 5µs/call: # 1001 times (5.11ms+0s) by Search::Elasticsearch::Role::Client::Direct::try {...} at line 27, avg 5µs/call
sub _parse_qs {
104#===================================
1051001443µs my ( $self, $handlers, $params ) = @_;
1061001381µs die "No (qs) defined\n" unless $handlers;
1071001296µs my %qs;
108
1091001856µs if ( my $raw = delete $params->{params} ) {
110 die("Arg (params) shoud be a hashref\n")
111 unless ref $raw eq 'HASH';
112 %qs = %$raw;
113 }
114
11510011.45ms for my $key ( keys %$params ) {
116 my $handler = $handlers->{$key}
117 or die("Unknown param ($key)\n");
118 $qs{$key} = $handler->( delete $params->{$key} );
119 }
12010018.34ms return \%qs;
121}
122
123#===================================
124
# spent 6.04ms (5.33+709µs) within Search::Elasticsearch::Role::Client::Direct::_install_api which was called 2 times, avg 3.02ms/call: # once (4.88ms+364µs) by Module::Runtime::require_module at line 68 of Search/Elasticsearch/Client/5_0/Direct.pm # once (447µs+346µs) by Module::Runtime::require_module at line 6 of Search/Elasticsearch/Client/5_0/Direct/Indices.pm
sub _install_api {
125#===================================
1262500ns my ( $class, $group ) = @_;
12722µs22µs my $defns = $class->api;
# spent 2µs making 2 calls to Search::Elasticsearch::Client::5_0::Role::API::api, avg 1µs/call
128212µs27µs my $stash = Package::Stash->new($class);
# spent 7µs making 2 calls to Package::Stash::XS::new, avg 4µs/call
129
130219µs312µs my $group_qr = $group ? qr/$group\./ : qr//;
# spent 10µs making 1 call to Search::Elasticsearch::Role::Client::Direct::CORE:regcomp # spent 2µs making 2 calls to Search::Elasticsearch::Role::Client::Direct::CORE:qr, avg 800ns/call
131240µs for my $action ( keys %$defns ) {
1322465.06ms492173µs my ($name) = ( $action =~ /^$group_qr([^.]+)$/ )
# spent 88µs making 246 calls to Search::Elasticsearch::Role::Client::Direct::CORE:regcomp, avg 358ns/call # spent 85µs making 246 calls to Search::Elasticsearch::Role::Client::Direct::CORE:match, avg 347ns/call
133 or next;
13474206µs150146µs next if $stash->has_symbol( '&' . $name );
# spent 125µs making 74 calls to Package::Stash::XS::has_symbol, avg 2µs/call # spent 20µs making 74 calls to Package::Stash::XS::namespace, avg 272ns/call # spent 800ns making 2 calls to Package::Stash::XS::name, avg 400ns/call
135
13674155µs my %defn = ( name => $name, %{ $defns->{$action} } );
137 $stash->add_symbol(
138
# spent 20.8s (6.93ms+20.8) within Search::Elasticsearch::Role::Client::Direct::__ANON__[/home/ss5/perl5/perlbrew/perls/perl-5.22.0/lib/site_perl/5.22.0/Search/Elasticsearch/Role/Client/Direct.pm:140] which was called 1001 times, avg 20.8ms/call: # 1000 times (6.93ms+20.8s) by BenchmarkAnything::Storage::Backend::SQL::add_single_benchmark at line 377 of BenchmarkAnything/Storage/Backend/SQL.pm, avg 20.8ms/call # once (6µs+3.53ms) by BenchmarkAnything::Storage::Backend::SQL::gc at line 462 of BenchmarkAnything/Storage/Backend/SQL.pm
'&' . $name => sub {
139100127.1ms100120.8s shift->perform_request( \%defn, @_ );
# spent 20.8s making 1001 calls to Search::Elasticsearch::Role::Client::perform_request, avg 20.8ms/call
140 }
14174538µs222417µs );
# spent 390µs making 74 calls to Package::Stash::XS::add_symbol, avg 5µs/call # spent 14µs making 74 calls to Package::Stash::XS::namespace, avg 193ns/call # spent 13µs making 74 calls to Package::Stash::XS::name, avg 181ns/call
142 }
143}
144
145#===================================
146
# spent 3.16ms (24µs+3.14) within Search::Elasticsearch::Role::Client::Direct::_build_namespace which was called: # once (24µs+3.14ms) by Search::Elasticsearch::Client::5_0::Direct::_build_indices at line 61 of Search/Elasticsearch/Client/5_0/Direct.pm
sub _build_namespace {
147#===================================
1481600ns my ( $self, $ns ) = @_;
14914µs22.48ms my $class = load_plugin( $self->_namespace, [$ns] );
# spent 2.48ms making 1 call to Search::Elasticsearch::Util::load_plugin # spent 1µs making 1 call to Search::Elasticsearch::Client::5_0::Direct::_namespace
150113µs3642µs return $class->new(
151 { transport => $self->transport,
152 logger => $self->logger
153 }
154 );
155}
156
157#===================================
158sub _build_helper {
159#===================================
160 my ( $self, $name, $sub_class ) = @_;
161 my $class = load_plugin( 'Search::Elasticsearch', $sub_class );
162 is_compat( $name . '_helper_class', $self->transport, $class );
163 return $class;
164}
165
16613µs1;
167
168# ABSTRACT: Request parsing for Direct clients
169
17017µs1246µs__END__
 
# spent 85µs within Search::Elasticsearch::Role::Client::Direct::CORE:match which was called 246 times, avg 347ns/call: # 246 times (85µs+0s) by Search::Elasticsearch::Role::Client::Direct::_install_api at line 132, avg 347ns/call
sub Search::Elasticsearch::Role::Client::Direct::CORE:match; # opcode
# spent 2µs within Search::Elasticsearch::Role::Client::Direct::CORE:qr which was called 2 times, avg 800ns/call: # 2 times (2µs+0s) by Search::Elasticsearch::Role::Client::Direct::_install_api at line 130, avg 800ns/call
sub Search::Elasticsearch::Role::Client::Direct::CORE:qr; # opcode
# spent 98µs within Search::Elasticsearch::Role::Client::Direct::CORE:regcomp which was called 247 times, avg 396ns/call: # 246 times (88µs+0s) by Search::Elasticsearch::Role::Client::Direct::_install_api at line 132, avg 358ns/call # once (10µs+0s) by Search::Elasticsearch::Role::Client::Direct::_install_api at line 130
sub Search::Elasticsearch::Role::Client::Direct::CORE:regcomp; # opcode