Filename | /home/mickey/git_tree/PONAPI/Server/lib/PONAPI/Builder/Links.pm |
Statements | Executed 9452068 statements in 16.2s |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
1091615 | 3 | 3 | 16.2s | 25.2s | build | PONAPI::Builder::Links::
716014 | 3 | 3 | 4.03s | 15.2s | add_link | PONAPI::Builder::Links::
529024 | 2 | 1 | 685ms | 685ms | __ANON__[lib/PONAPI/Builder/Links.pm:15] | PONAPI::Builder::Links::
1 | 1 | 1 | 16µs | 6.70ms | BEGIN@4 | PONAPI::Builder::Links::
1 | 1 | 1 | 9µs | 72µs | BEGIN@52 | PONAPI::Builder::Links::
0 | 0 | 0 | 0s | 0s | add_links | PONAPI::Builder::Links::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | # ABSTRACT: document builder - links | ||||
2 | package PONAPI::Builder::Links; | ||||
3 | |||||
4 | 2 | 237µs | 2 | 13.4ms | # spent 6.70ms (16µs+6.69) within PONAPI::Builder::Links::BEGIN@4 which was called:
# once (16µs+6.69ms) by PONAPI::Builder::Role::HasLinksBuilder::BEGIN@6 at line 4 # spent 6.70ms making 1 call to PONAPI::Builder::Links::BEGIN@4
# spent 6.69ms making 1 call to Moose::import |
5 | |||||
6 | 1 | 3µs | 1 | 7.65ms | with 'PONAPI::Builder', # spent 7.65ms making 1 call to Moose::with |
7 | 'PONAPI::Builder::Role::HasMeta'; | ||||
8 | |||||
9 | has _links => ( | ||||
10 | init_arg => undef, | ||||
11 | traits => [ 'Hash' ], | ||||
12 | is => 'ro', | ||||
13 | isa => 'HashRef', | ||||
14 | lazy => 1, | ||||
15 | 529024 | 2.75s | # spent 685ms within PONAPI::Builder::Links::__ANON__[lib/PONAPI/Builder/Links.pm:15] which was called 529024 times, avg 1µs/call:
# 429023 times (594ms+0s) by PONAPI::Builder::Links::_add_link at line 24 of (eval 45)[Eval/Closure.pm:144], avg 1µs/call
# 100001 times (90.5ms+0s) by PONAPI::Builder::Links::has_link at line 20 of (eval 45)[Eval/Closure.pm:144], avg 905ns/call | ||
16 | 1 | 10µs | 1 | 103ms | handles => { # spent 103ms making 1 call to Moose::has |
17 | 'has_links' => 'count', | ||||
18 | 'has_link' => 'exists', | ||||
19 | 'get_link' => 'get', | ||||
20 | # private ... | ||||
21 | '_add_link' => 'set', | ||||
22 | '_keys_links' => 'keys', | ||||
23 | } | ||||
24 | ); | ||||
25 | |||||
26 | # spent 15.2s (4.03+11.2) within PONAPI::Builder::Links::add_link which was called 716014 times, avg 21µs/call:
# 345766 times (1.85s+4.73s) by PONAPI::Builder::Relationship::_add_relationship_link at line 63 of lib/PONAPI/Builder/Relationship.pm, avg 19µs/call
# 270247 times (1.64s+5.59s) by PONAPI::Builder::Resource::add_self_link at line 95 of lib/PONAPI/Builder/Resource.pm, avg 27µs/call
# 100001 times (537ms+867ms) by PONAPI::Builder::Document::add_self_link at line 138 of lib/PONAPI/Builder/Document.pm, avg 14µs/call | ||||
27 | 716014 | 350ms | my ( $self, $rel, $url ) = @_; | ||
28 | 716014 | 1.01s | 716014 | 11.2s | $self->_add_link( $rel => $url ); # spent 11.2s making 716014 calls to PONAPI::Builder::Links::_add_link, avg 16µs/call |
29 | 716014 | 2.49s | return $self; | ||
30 | } | ||||
31 | |||||
32 | sub add_links { | ||||
33 | my ( $self, %links ) = @_; | ||||
34 | $self->add_link( $_, $links{ $_ } ) foreach keys %links; | ||||
35 | return $self; | ||||
36 | } | ||||
37 | |||||
38 | # spent 25.2s (16.2+9.07) within PONAPI::Builder::Links::build which was called 1091615 times, avg 23µs/call:
# 607534 times (8.68s+5.13s) by PONAPI::Builder::Resource::build at line 106 of lib/PONAPI/Builder/Resource.pm, avg 23µs/call
# 384080 times (5.89s+2.96s) by PONAPI::Builder::Relationship::build at line 89 of lib/PONAPI/Builder/Relationship.pm, avg 23µs/call
# 100001 times (1.59s+984ms) by PONAPI::Builder::Document::build at line 149 of lib/PONAPI/Builder/Document.pm, avg 26µs/call | ||||
39 | 1091615 | 218ms | my $self = $_[0]; | ||
40 | 1091615 | 313ms | my $result = {}; | ||
41 | |||||
42 | 1091615 | 1.73s | 1091615 | 2.76s | foreach my $key ( $self->_keys_links ) { # spent 2.76s making 1091615 calls to PONAPI::Builder::Links::_keys_links, avg 3µs/call |
43 | 1316919 | 2.68s | 1316919 | 4.40s | $result->{ $key } = $self->get_link( $key ); # spent 4.40s making 1316919 calls to PONAPI::Builder::Links::get_link, avg 3µs/call |
44 | } | ||||
45 | |||||
46 | 1091615 | 1.18s | 1091615 | 1.91s | $result->{meta} = $self->_meta if $self->has_meta; # spent 1.91s making 1091615 calls to PONAPI::Builder::Links::has_meta, avg 2µs/call |
47 | |||||
48 | 1091615 | 3.47s | return $result; | ||
49 | } | ||||
50 | |||||
51 | 1 | 4µs | 2 | 2.50ms | __PACKAGE__->meta->make_immutable; # spent 2.48ms making 1 call to Class::MOP::Class::make_immutable
# spent 16µs making 1 call to PONAPI::Builder::Links::meta |
52 | 3 | 62µs | 2 | 135µs | # spent 72µs (9+63) within PONAPI::Builder::Links::BEGIN@52 which was called:
# once (9µs+63µs) by PONAPI::Builder::Role::HasLinksBuilder::BEGIN@6 at line 52 # spent 72µs making 1 call to PONAPI::Builder::Links::BEGIN@52
# spent 63µs making 1 call to Moose::unimport |
53 | |||||
54 | __END__ |