Filename | /usr/local/share/perl/5.18.2/HTTP/Headers/ActionPack/Core/BaseHeaderWithParams.pm |
Statements | Executed 1500027 statements in 6.61s |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
200002 | 1 | 1 | 1.54s | 1.83s | params_in_order | HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::
100001 | 1 | 1 | 1.10s | 1.10s | _prepare_params | HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::
100001 | 1 | 1 | 898ms | 994ms | params_are_empty | HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::
200002 | 2 | 2 | 376ms | 376ms | params | HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::
200002 | 1 | 1 | 292ms | 292ms | _param_order | HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::
1 | 1 | 1 | 8µs | 345µs | BEGIN@15 | HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::
1 | 1 | 1 | 8µs | 12µs | BEGIN@11 | HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::
1 | 1 | 1 | 7µs | 7µs | BEGIN@2 | HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::
1 | 1 | 1 | 7µs | 18µs | BEGIN@10 | HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::
1 | 1 | 1 | 7µs | 32µs | BEGIN@13 | HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::
0 | 0 | 0 | 0s | 0s | add_param | HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::
0 | 0 | 0 | 0s | 0s | remove_param | HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | package HTTP::Headers::ActionPack::Core::BaseHeaderWithParams; | ||||
2 | # spent 7µs within HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::BEGIN@2 which was called:
# once (7µs+0s) by parent::import at line 4 | ||||
3 | 1 | 4µs | $HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::AUTHORITY = 'cpan:STEVAN'; | ||
4 | 1 | 30µs | 1 | 7µs | } # spent 7µs making 1 call to HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::BEGIN@2 |
5 | { | ||||
6 | 2 | 900ns | $HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::VERSION = '0.09'; | ||
7 | } | ||||
8 | # ABSTRACT: A Base header type with parameters | ||||
9 | |||||
10 | 2 | 21µs | 2 | 30µs | # spent 18µs (7+11) within HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::BEGIN@10 which was called:
# once (7µs+11µs) by parent::import at line 10 # spent 18µs making 1 call to HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::BEGIN@10
# spent 11µs making 1 call to strict::import |
11 | 2 | 21µs | 2 | 17µs | # spent 12µs (8+5) within HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::BEGIN@11 which was called:
# once (8µs+5µs) by parent::import at line 11 # spent 12µs making 1 call to HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::BEGIN@11
# spent 5µs making 1 call to warnings::import |
12 | |||||
13 | 2 | 24µs | 2 | 56µs | # spent 32µs (7+25) within HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::BEGIN@13 which was called:
# once (7µs+25µs) by parent::import at line 13 # spent 32µs making 1 call to HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::BEGIN@13
# spent 25µs making 1 call to Exporter::import |
14 | |||||
15 | 2 | 236µs | 2 | 345µs | # spent 345µs (8+337) within HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::BEGIN@15 which was called:
# once (8µs+337µs) by parent::import at line 15 # spent 345µs making 1 call to HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::BEGIN@15
# spent 337µs making 1 call to parent::import, recursion: max depth 2, sum of overlapping time 337µs |
16 | |||||
17 | # NOTE: | ||||
18 | # this is meant to be | ||||
19 | # called by subclasses | ||||
20 | # in their BUILDARGS | ||||
21 | # methods | ||||
22 | # - SL | ||||
23 | # spent 1.10s within HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::_prepare_params which was called 100001 times, avg 11µs/call:
# 100001 times (1.10s+0s) by HTTP::Headers::ActionPack::Core::BaseHeaderType::BUILDARGS at line 30 of HTTP/Headers/ActionPack/Core/BaseHeaderType.pm, avg 11µs/call | ||||
24 | 100001 | 76.6ms | my ($class, @params) = @_; | ||
25 | |||||
26 | 100001 | 205ms | confess "Params must be an even sized list" unless (((scalar @params) % 2) == 0); | ||
27 | |||||
28 | 100001 | 31.8ms | my @param_order; | ||
29 | 100001 | 203ms | for ( my $i = 0; $i < $#params; $i += 2 ) { | ||
30 | push @param_order => $params[ $i ]; | ||||
31 | } | ||||
32 | |||||
33 | return +{ | ||||
34 | 100001 | 1.10s | params => { @params }, | ||
35 | param_order => \@param_order | ||||
36 | }; | ||||
37 | } | ||||
38 | |||||
39 | 200002 | 1.28s | # spent 376ms within HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::params which was called 200002 times, avg 2µs/call:
# 100001 times (280ms+0s) by HTTP::Headers::ActionPack::MediaTypeList::add_header_value at line 35 of HTTP/Headers/ActionPack/MediaTypeList.pm, avg 3µs/call
# 100001 times (95.9ms+0s) by HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::params_are_empty at line 61, avg 959ns/call | ||
40 | 200002 | 1.13s | # spent 292ms within HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::_param_order which was called 200002 times, avg 1µs/call:
# 200002 times (292ms+0s) by HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::params_in_order at line 56, avg 1µs/call | ||
41 | |||||
42 | sub add_param { | ||||
43 | my ($self, $k, $v) = @_; | ||||
44 | $self->params->{ $k } = $v; | ||||
45 | push @{ $self->_param_order } => $k; | ||||
46 | } | ||||
47 | |||||
48 | sub remove_param { | ||||
49 | my ($self, $k) = @_; | ||||
50 | $self->{'param_order'} = [ grep { $_ ne $k } @{ $self->{'param_order'} } ]; | ||||
51 | return delete $self->params->{ $k }; | ||||
52 | } | ||||
53 | |||||
54 | # spent 1.83s (1.54+292ms) within HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::params_in_order which was called 200002 times, avg 9µs/call:
# 200002 times (1.54s+292ms) by HTTP::Headers::ActionPack::Core::BaseHeaderType::as_string at line 43 of HTTP/Headers/ActionPack/Core/BaseHeaderType.pm, avg 9µs/call | ||||
55 | 200002 | 62.4ms | my $self = shift; | ||
56 | 200002 | 1.58s | 200002 | 292ms | map { $_, $self->params->{ $_ } } @{ $self->_param_order } # spent 292ms making 200002 calls to HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::_param_order, avg 1µs/call |
57 | } | ||||
58 | |||||
59 | # spent 994ms (898+95.9) within HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::params_are_empty which was called 100001 times, avg 10µs/call:
# 100001 times (898ms+95.9ms) by PONAPI::Server::_ponapi_check_headers at line 226 of lib/PONAPI/Server.pm, avg 10µs/call | ||||
60 | 100001 | 56.2ms | my $self = shift; | ||
61 | 100001 | 878ms | 100001 | 95.9ms | (scalar keys %{ $self->params }) == 0 ? 1 : 0 # spent 95.9ms making 100001 calls to HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::params, avg 959ns/call |
62 | } | ||||
63 | |||||
64 | 1 | 2µs | 1; | ||
65 | |||||
66 | __END__ |