← 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/Search/Elasticsearch/Role/Client/Direct.pm
StatementsExecuted 500 statements in 4.31ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
2221.69ms3.31msSearch::Elasticsearch::Role::Client::Direct::::_install_api Search::Elasticsearch::Role::Client::Direct::_install_api
111589µs1.77msSearch::Elasticsearch::Role::Client::Direct::::BEGIN@5 Search::Elasticsearch::Role::Client::Direct::BEGIN@5
22811232µs232µsSearch::Elasticsearch::Role::Client::Direct::::CORE:match Search::Elasticsearch::Role::Client::Direct::CORE:match (opcode)
22921208µs208µsSearch::Elasticsearch::Role::Client::Direct::::CORE:regcomp Search::Elasticsearch::Role::Client::Direct::CORE:regcomp (opcode)
11124µs158µsSearch::Elasticsearch::Role::Client::Direct::::parse_request Search::Elasticsearch::Role::Client::Direct::parse_request
11116µs322µsSearch::Elasticsearch::Role::Client::Direct::::BEGIN@3 Search::Elasticsearch::Role::Client::Direct::BEGIN@3
11115µs26µsSearch::Elasticsearch::Role::Client::Direct::::BEGIN@7 Search::Elasticsearch::Role::Client::Direct::BEGIN@7
11110µs46µsSearch::Elasticsearch::Role::Client::Direct::::BEGIN@6 Search::Elasticsearch::Role::Client::Direct::BEGIN@6
1118µs247µsSearch::Elasticsearch::Role::Client::Direct::::BEGIN@8 Search::Elasticsearch::Role::Client::Direct::BEGIN@8
1117µs44µsSearch::Elasticsearch::Role::Client::Direct::::__ANON__[:3] Search::Elasticsearch::Role::Client::Direct::__ANON__[:3]
1116µs59µsSearch::Elasticsearch::Role::Client::Direct::::_parse_path Search::Elasticsearch::Role::Client::Direct::_parse_path
1116µs6.72msSearch::Elasticsearch::Role::Client::Direct::::__ANON__[:102] Search::Elasticsearch::Role::Client::Direct::__ANON__[:102]
1115µs5µsSearch::Elasticsearch::Role::Client::Direct::::_parse_qs Search::Elasticsearch::Role::Client::Direct::_parse_qs
1113µs3µsSearch::Elasticsearch::Role::Client::Direct::::_parse_body Search::Elasticsearch::Role::Client::Direct::_parse_body
2113µs3µsSearch::Elasticsearch::Role::Client::Direct::::CORE:qr Search::Elasticsearch::Role::Client::Direct::CORE:qr (opcode)
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::analyzeSearch::Elasticsearch::Client::2_0::Direct::Indices::analyze
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::clear_cacheSearch::Elasticsearch::Client::2_0::Direct::Indices::clear_cache
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::closeSearch::Elasticsearch::Client::2_0::Direct::Indices::close
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::createSearch::Elasticsearch::Client::2_0::Direct::Indices::create
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::deleteSearch::Elasticsearch::Client::2_0::Direct::Indices::delete
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::delete_aliasSearch::Elasticsearch::Client::2_0::Direct::Indices::delete_alias
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::delete_templateSearch::Elasticsearch::Client::2_0::Direct::Indices::delete_template
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::delete_warmerSearch::Elasticsearch::Client::2_0::Direct::Indices::delete_warmer
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::existsSearch::Elasticsearch::Client::2_0::Direct::Indices::exists
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::exists_aliasSearch::Elasticsearch::Client::2_0::Direct::Indices::exists_alias
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::exists_templateSearch::Elasticsearch::Client::2_0::Direct::Indices::exists_template
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::exists_typeSearch::Elasticsearch::Client::2_0::Direct::Indices::exists_type
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::flushSearch::Elasticsearch::Client::2_0::Direct::Indices::flush
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::flush_syncedSearch::Elasticsearch::Client::2_0::Direct::Indices::flush_synced
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::forcemergeSearch::Elasticsearch::Client::2_0::Direct::Indices::forcemerge
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::getSearch::Elasticsearch::Client::2_0::Direct::Indices::get
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::get_aliasSearch::Elasticsearch::Client::2_0::Direct::Indices::get_alias
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::get_aliasesSearch::Elasticsearch::Client::2_0::Direct::Indices::get_aliases
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::get_field_mappingSearch::Elasticsearch::Client::2_0::Direct::Indices::get_field_mapping
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::get_mappingSearch::Elasticsearch::Client::2_0::Direct::Indices::get_mapping
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::get_settingsSearch::Elasticsearch::Client::2_0::Direct::Indices::get_settings
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::get_templateSearch::Elasticsearch::Client::2_0::Direct::Indices::get_template
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::get_upgradeSearch::Elasticsearch::Client::2_0::Direct::Indices::get_upgrade
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::get_warmerSearch::Elasticsearch::Client::2_0::Direct::Indices::get_warmer
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::openSearch::Elasticsearch::Client::2_0::Direct::Indices::open
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::optimizeSearch::Elasticsearch::Client::2_0::Direct::Indices::optimize
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::put_aliasSearch::Elasticsearch::Client::2_0::Direct::Indices::put_alias
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::put_mappingSearch::Elasticsearch::Client::2_0::Direct::Indices::put_mapping
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::put_settingsSearch::Elasticsearch::Client::2_0::Direct::Indices::put_settings
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::put_templateSearch::Elasticsearch::Client::2_0::Direct::Indices::put_template
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::put_warmerSearch::Elasticsearch::Client::2_0::Direct::Indices::put_warmer
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::recoverySearch::Elasticsearch::Client::2_0::Direct::Indices::recovery
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::refreshSearch::Elasticsearch::Client::2_0::Direct::Indices::refresh
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::segmentsSearch::Elasticsearch::Client::2_0::Direct::Indices::segments
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::shard_storesSearch::Elasticsearch::Client::2_0::Direct::Indices::shard_stores
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::statsSearch::Elasticsearch::Client::2_0::Direct::Indices::stats
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::update_aliasesSearch::Elasticsearch::Client::2_0::Direct::Indices::update_aliases
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::upgradeSearch::Elasticsearch::Client::2_0::Direct::Indices::upgrade
0000s0sSearch::Elasticsearch::Client::2_0::Direct::Indices::::validate_querySearch::Elasticsearch::Client::2_0::Direct::Indices::validate_query
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::bulk Search::Elasticsearch::Client::2_0::Direct::bulk
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::clear_scroll Search::Elasticsearch::Client::2_0::Direct::clear_scroll
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::count Search::Elasticsearch::Client::2_0::Direct::count
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::count_percolate Search::Elasticsearch::Client::2_0::Direct::count_percolate
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::delete Search::Elasticsearch::Client::2_0::Direct::delete
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::delete_by_query Search::Elasticsearch::Client::2_0::Direct::delete_by_query
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::delete_script Search::Elasticsearch::Client::2_0::Direct::delete_script
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::delete_template Search::Elasticsearch::Client::2_0::Direct::delete_template
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::exists Search::Elasticsearch::Client::2_0::Direct::exists
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::explain Search::Elasticsearch::Client::2_0::Direct::explain
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::field_stats Search::Elasticsearch::Client::2_0::Direct::field_stats
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::get Search::Elasticsearch::Client::2_0::Direct::get
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::get_script Search::Elasticsearch::Client::2_0::Direct::get_script
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::get_source Search::Elasticsearch::Client::2_0::Direct::get_source
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::get_template Search::Elasticsearch::Client::2_0::Direct::get_template
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::index Search::Elasticsearch::Client::2_0::Direct::index
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::info Search::Elasticsearch::Client::2_0::Direct::info
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::mget Search::Elasticsearch::Client::2_0::Direct::mget
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::mpercolate Search::Elasticsearch::Client::2_0::Direct::mpercolate
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::msearch Search::Elasticsearch::Client::2_0::Direct::msearch
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::mtermvectors Search::Elasticsearch::Client::2_0::Direct::mtermvectors
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::percolate Search::Elasticsearch::Client::2_0::Direct::percolate
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::ping Search::Elasticsearch::Client::2_0::Direct::ping
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::put_script Search::Elasticsearch::Client::2_0::Direct::put_script
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::put_template Search::Elasticsearch::Client::2_0::Direct::put_template
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::reindex Search::Elasticsearch::Client::2_0::Direct::reindex
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::render_search_template Search::Elasticsearch::Client::2_0::Direct::render_search_template
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::scroll Search::Elasticsearch::Client::2_0::Direct::scroll
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::search Search::Elasticsearch::Client::2_0::Direct::search
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::search_exists Search::Elasticsearch::Client::2_0::Direct::search_exists
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::search_shards Search::Elasticsearch::Client::2_0::Direct::search_shards
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::search_template Search::Elasticsearch::Client::2_0::Direct::search_template
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::suggest Search::Elasticsearch::Client::2_0::Direct::suggest
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::termvectors Search::Elasticsearch::Client::2_0::Direct::termvectors
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::update Search::Elasticsearch::Client::2_0::Direct::update
0000s0sSearch::Elasticsearch::Client::2_0::Direct::::update_by_query Search::Elasticsearch::Client::2_0::Direct::update_by_query
0000s0sSearch::Elasticsearch::Role::Client::Direct::::__ANON__[:27] Search::Elasticsearch::Role::Client::Direct::__ANON__[:27]
0000s0sSearch::Elasticsearch::Role::Client::Direct::::__ANON__[:36] Search::Elasticsearch::Role::Client::Direct::__ANON__[:36]
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;
21400ns$Search::Elasticsearch::Role::Client::Direct::VERSION = '2.02';
3455µs3664µs
# spent 44µs (7+37) within Search::Elasticsearch::Role::Client::Direct::__ANON__[/opt/flows/lib/lib/perl5/Search/Elasticsearch/Role/Client/Direct.pm:3] which was called: # once (7µs+37µs) by import::into at line 34 of Import/Into.pm # spent 322µs (16+306) within Search::Elasticsearch::Role::Client::Direct::BEGIN@3 which was called: # once (16µs+306µs) by Module::Runtime::require_module at line 3
use Moo::Role;
# spent 322µs making 1 call to Search::Elasticsearch::Role::Client::Direct::BEGIN@3 # spent 306µs making 1 call to Moo::Role::import # spent 37µs making 1 call to strictures::import
411µs11.65mswith 'Search::Elasticsearch::Role::Client';
# spent 1.65ms making 1 call to Moo::Role::with
52128µs21.91ms
# spent 1.77ms (589µs+1.18) within Search::Elasticsearch::Role::Client::Direct::BEGIN@5 which was called: # once (589µs+1.18ms) by Module::Runtime::require_module at line 5
use Search::Elasticsearch::Util::API::Path qw(path_handler);
6235µs283µs
# spent 46µs (10+36) within Search::Elasticsearch::Role::Client::Direct::BEGIN@6 which was called: # once (10µs+36µs) by Module::Runtime::require_module at line 6
use Try::Tiny;
# spent 46µs making 1 call to Search::Elasticsearch::Role::Client::Direct::BEGIN@6 # spent 36µs making 1 call to Exporter::import
7351µs238µs
# spent 26µs (15+12) within Search::Elasticsearch::Role::Client::Direct::BEGIN@7 which was called: # once (15µs+12µs) by Module::Runtime::require_module at line 7
use Package::Stash 0.34 ();
# spent 26µs making 1 call to Search::Elasticsearch::Role::Client::Direct::BEGIN@7 # spent 12µs making 1 call to UNIVERSAL::VERSION
82641µs2486µs
# spent 247µs (8+239) within Search::Elasticsearch::Role::Client::Direct::BEGIN@8 which was called: # once (8µs+239µs) by Module::Runtime::require_module at line 8
use namespace::clean;
# spent 247µs making 1 call to Search::Elasticsearch::Role::Client::Direct::BEGIN@8 # spent 239µs making 1 call to namespace::clean::import
9
10#===================================
11
# spent 158µs (24+134) within Search::Elasticsearch::Role::Client::Direct::parse_request which was called: # once (24µs+134µs) by Search::Elasticsearch::Role::Client::perform_request at line 15 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Role/Client.pm
sub parse_request {
12#===================================
131100ns my $self = shift;
141300ns my $defn = shift || {};
1511µs my $params = { ref $_[0] ? %{ shift() } : @_ };
16
171200ns my $request;
18 try {
19112µs367µs $request = {
20 ignore => delete $params->{ignore} || [],
21 method => $defn->{method} || 'GET',
22 serialize => $defn->{serialize} || 'std',
23 path => $self->_parse_path( $defn, $params ),
24 body => $self->_parse_body( $defn->{body}, $params ),
25 qs => $self->_parse_qs( $defn->{qs_handlers}, $params ),
26 };
27 }
28 catch {
29 chomp $_;
30 my $name = $defn->{name} || '<unknown method>';
31 $self->logger->throw_error( 'Param',
32 "$_ in ($name) request. "
33 . "See docs at: http://www.elastic.co/guide/en/elasticsearch/reference/current/"
34 . $defn->{doc}
35 . '.html' );
36119µs2134µs };
# spent 127µs making 1 call to Try::Tiny::try # spent 7µs making 1 call to Try::Tiny::catch
3714µs return $request;
38}
39
40#===================================
41
# spent 59µs (6+53) within Search::Elasticsearch::Role::Client::Direct::_parse_path which was called: # once (6µs+53µs) by Search::Elasticsearch::Role::Client::Direct::try {...} at line 19
sub _parse_path {
42#===================================
431600ns my ( $self, $defn, $params ) = @_;
441200ns return delete $params->{path}
45 if $params->{path};
4619µs153µs path_handler( $defn, $params );
47}
48
49#===================================
50
# spent 3µs within Search::Elasticsearch::Role::Client::Direct::_parse_body which was called: # once (3µs+0s) by Search::Elasticsearch::Role::Client::Direct::try {...} at line 19
sub _parse_body {
51#===================================
5211µs my ( $self, $defn, $params ) = @_;
531300ns if ( defined $defn ) {
54 die("Missing required param (body)\n")
55 if $defn->{required} && !$params->{body};
56 return delete $params->{body};
57 }
581200ns die("Unknown param (body)\n") if $params->{body};
5916µs return undef;
60}
61
62#===================================
63
# spent 5µs within Search::Elasticsearch::Role::Client::Direct::_parse_qs which was called: # once (5µs+0s) by Search::Elasticsearch::Role::Client::Direct::try {...} at line 19
sub _parse_qs {
64#===================================
651500ns my ( $self, $handlers, $params ) = @_;
661200ns die "No (qs_handlers) defined\n" unless $handlers;
671100ns my %qs;
68
691500ns if ( my $raw = delete $params->{params} ) {
70 die("Arg (params) shoud be a hashref\n")
71 unless ref $raw eq 'HASH';
72 %qs = %$raw;
73 }
74
7512µs for my $key ( keys %$params ) {
76 my $key_defn = $handlers->{$key}
77 or die("Unknown param ($key)\n");
78 my $handler = $key_defn->{handler}
79 or die "No (handler) defined for ($key)\n";
80 $qs{$key} = $handler->( delete $params->{$key} );
81 }
8214µs return \%qs;
83}
84
85#===================================
86
# spent 3.31ms (1.69+1.63) within Search::Elasticsearch::Role::Client::Direct::_install_api which was called 2 times, avg 1.66ms/call: # once (861µs+815µs) by Module::Runtime::require_module at line 6 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Client/2_0/Direct/Indices.pm # once (824µs+814µs) by Module::Runtime::require_module at line 10 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Client/2_0/Direct.pm
sub _install_api {
87#===================================
882800ns my ( $class, $group ) = @_;
8923µs23µs my $defns = $class->api;
# spent 3µs making 2 calls to Search::Elasticsearch::Role::API::2_0::api, avg 1µs/call
90220µs214µs my $stash = Package::Stash->new($class);
# spent 14µs making 2 calls to Package::Stash::XS::new, avg 7µs/call
91
92221µs310µs my $group_qr = $group ? qr/$group\./ : qr//;
# spent 7µs making 1 call to Search::Elasticsearch::Role::Client::Direct::CORE:regcomp # spent 3µs making 2 calls to Search::Elasticsearch::Role::Client::Direct::CORE:qr, avg 2µs/call
93251µs for my $action ( keys %$defns ) {
942281.26ms456433µs my ($name) = ( $action =~ /^$group_qr([^.]+)$/ )
# spent 232µs making 228 calls to Search::Elasticsearch::Role::Client::Direct::CORE:match, avg 1µs/call # spent 200µs making 228 calls to Search::Elasticsearch::Role::Client::Direct::CORE:regcomp, avg 879ns/call
95 or next;
9675437µs152339µs next if $stash->has_symbol( '&' . $name );
# spent 288µs making 75 calls to Package::Stash::XS::has_symbol, avg 4µs/call # spent 49µs making 75 calls to Package::Stash::XS::namespace, avg 653ns/call # spent 1µs making 2 calls to Package::Stash::XS::name, avg 650ns/call
97
9875273µs my %defn = ( name => $name, %{ $defns->{$action} } );
99 $stash->add_symbol(
100
# spent 6.72ms (6µs+6.71) within Search::Elasticsearch::Role::Client::Direct::__ANON__[/opt/flows/lib/lib/perl5/Search/Elasticsearch/Role/Client/Direct.pm:102] which was called: # once (6µs+6.71ms) by main::create_es_bulk at line 156 of flows_to_es.pl
'&' . $name => sub {
10116µs16.71ms shift->perform_request( \%defn, @_ );
102 }
103751.25ms225969µs );
# spent 882µs making 75 calls to Package::Stash::XS::add_symbol, avg 12µs/call # spent 49µs making 75 calls to Package::Stash::XS::namespace, avg 653ns/call # spent 38µs making 75 calls to Package::Stash::XS::name, avg 511ns/call
104 }
105}
106
10715µs1;
108
109# ABSTRACT: Request parsing for Direct clients
110
111111µs1430µs__END__
 
# spent 232µs within Search::Elasticsearch::Role::Client::Direct::CORE:match which was called 228 times, avg 1µs/call: # 228 times (232µs+0s) by Search::Elasticsearch::Role::Client::Direct::_install_api at line 94, avg 1µs/call
sub Search::Elasticsearch::Role::Client::Direct::CORE:match; # opcode
# spent 3µs within Search::Elasticsearch::Role::Client::Direct::CORE:qr which was called 2 times, avg 2µs/call: # 2 times (3µs+0s) by Search::Elasticsearch::Role::Client::Direct::_install_api at line 92, avg 2µs/call
sub Search::Elasticsearch::Role::Client::Direct::CORE:qr; # opcode
# spent 208µs within Search::Elasticsearch::Role::Client::Direct::CORE:regcomp which was called 229 times, avg 907ns/call: # 228 times (200µs+0s) by Search::Elasticsearch::Role::Client::Direct::_install_api at line 94, avg 879ns/call # once (7µs+0s) by Search::Elasticsearch::Role::Client::Direct::_install_api at line 92
sub Search::Elasticsearch::Role::Client::Direct::CORE:regcomp; # opcode