Profile of Test/Deep/Hash.pm

← Index
NYTProf Performance Profile «block view•line view•sub view»
For t/app_dpath.t
Run on Tue Jun 5 15:25:28 2012
Reported on Tue Jun 5 15:26:07 2012

Filename | /home/ss5/perl5/perlbrew/perls/perl-5.14.1/lib/site_perl/5.14.1/Test/Deep/Hash.pm
Statements | Executed 62 statements in 3.58ms

Subroutines
Calls | P | F | Exclusive Time | Inclusive Time | Subroutine
--- | --- | --- | --- | --- | ---
3 | 1 | 1 | 2.29ms | 3.57ms | Test::Deep::Hash::::hash_elements Test::Deep::Hash::hash_elements
3 | 1 | 1 | 1.91ms | 3.25ms | Test::Deep::Hash::::hash_keys Test::Deep::Hash::hash_keys
3 | 1 | 1 | 275µs | 23.0ms | Test::Deep::Hash::::descend Test::Deep::Hash::descend
1 | 1 | 1 | 96µs | 131µs | Test::Deep::::BEGIN@1.21 Test::Deep::BEGIN@1.21
3 | 1 | 1 | 85µs | 85µs | Test::Deep::Hash::::init Test::Deep::Hash::init
1 | 1 | 1 | 68µs | 176µs | Test::Deep::::BEGIN@2.22 Test::Deep::BEGIN@2.22
1 | 1 | 1 | 55µs | 528µs | Test::Deep::SuperHash::::BEGIN@60Test::Deep::SuperHash::BEGIN@60
1 | 1 | 1 | 42µs | 196µs | Test::Deep::Hash::::BEGIN@6 Test::Deep::Hash::BEGIN@6
1 | 1 | 1 | 29µs | 303µs | Test::Deep::SubHash::::BEGIN@83 Test::Deep::SubHash::BEGIN@83
0 | 0 | 0 | 0s | 0s | Test::Deep::Hash::::reset_arrow Test::Deep::Hash::reset_arrow
0 | 0 | 0 | 0s | 0s | Test::Deep::SubHash::::hash_elements Test::Deep::SubHash::hash_elements
0 | 0 | 0 | 0s | 0s | Test::Deep::SubHash::::hash_keys Test::Deep::SubHash::hash_keys
0 | 0 | 0 | 0s | 0s | Test::Deep::SuperHash::::hash_elementsTest::Deep::SuperHash::hash_elements
0 | 0 | 0 | 0s | 0s | Test::Deep::SuperHash::::hash_keysTest::Deep::SuperHash::hash_keys

Call graph for these subroutines as a Graphviz dot language file.

Line | State ments | Time on line | Calls | Time in subs | Code
--- | --- | --- | --- | --- | ---
1 | 2 | 153µs | 2 | 166µs | # spent 131µs (96+35) within Test::Deep::BEGIN@1.21 which was called: # once (96µs+35µs) by Test::Deep::__ANON__[/home/ss5/perl5/perlbrew/perls/perl-5.14.1/lib/site_perl/5.14.1/Test/Deep.pm:80] at line 1 use strict; # spent 131µs making 1 call to Test::Deep::BEGIN@1.21 # spent 35µs making 1 call to strict::import
2 | 2 | 172µs | 2 | 285µs | # spent 176µs (68+109) within Test::Deep::BEGIN@2.22 which was called: # once (68µs+109µs) by Test::Deep::__ANON__[/home/ss5/perl5/perlbrew/perls/perl-5.14.1/lib/site_perl/5.14.1/Test/Deep.pm:80] at line 2 use warnings; # spent 176µs making 1 call to Test::Deep::BEGIN@2.22 # spent 109µs making 1 call to warnings::import
3 |  |  |  |  |
4 |  |  |  |  | package Test::Deep::Hash;
5 |  |  |  |  |
6 | 2 | 1.12ms | 2 | 350µs | # spent 196µs (42+154) within Test::Deep::Hash::BEGIN@6 which was called: # once (42µs+154µs) by Test::Deep::__ANON__[/home/ss5/perl5/perlbrew/perls/perl-5.14.1/lib/site_perl/5.14.1/Test/Deep.pm:80] at line 6 use Test::Deep::Ref; # spent 196µs making 1 call to Test::Deep::Hash::BEGIN@6 # spent 154µs making 1 call to Test::Deep::Cmp::import
7 |  |  |  |  |
8 |  |  |  |  | sub init
9 |  |  |  |  | # spent 85µs within Test::Deep::Hash::init which was called 3 times, avg 28µs/call: # 3 times (85µs+0s) by Test::Deep::Cmp::new at line 33 of Test/Deep/Cmp.pm, avg 28µs/call {
10 | 9 | 86µs |  |  | my $self = shift;
11 |  |  |  |  |
12 |  |  |  |  | my $val = shift;
13 |  |  |  |  |
14 |  |  |  |  | $self->{val} = $val;
15 |  |  |  |  | }
16 |  |  |  |  |
17 |  |  |  |  | sub descend
18 |  |  |  |  | # spent 23.0ms (275µs+22.7) within Test::Deep::Hash::descend which was called 3 times, avg 7.67ms/call: # 3 times (275µs+22.7ms) by Test::Deep::descend at line 328 of Test/Deep.pm, avg 7.67ms/call {
19 | 21 | 294µs |  |  | my $self = shift;
20 |  |  |  |  |
21 |  |  |  |  | my $got = shift;
22 |  |  |  |  |
23 |  |  |  |  | my $exp = $self->{val};
24 |  |  |  |  |
25 |  |  | 3 | 264µs | my $data = $self->data; # spent 264µs making 3 calls to Test::Deep::Cmp::data, avg 88µs/call
26 |  |  |  |  |
27 |  |  | 6 | 3.25ms | return 0 unless Test::Deep::descend($got, $self->hash_keys($exp)); # spent 3.25ms making 3 calls to Test::Deep::Hash::hash_keys, avg 1.08ms/call # spent 11.0ms making 3 calls to Test::Deep::descend, avg 3.65ms/call, recursion: max depth 1, sum of overlapping time 11.0ms
28 |  |  |  |  |
29 |  |  | 3 | 2.60ms | return 0 unless $self->test_class($got); # spent 2.60ms making 3 calls to Test::Deep::Ref::test_class, avg 867µs/call
30 |  |  |  |  |
31 |  |  | 6 | 3.57ms | return Test::Deep::descend($got, $self->hash_elements($exp)); # spent 3.57ms making 3 calls to Test::Deep::Hash::hash_elements, avg 1.19ms/call # spent 2.07ms making 3 calls to Test::Deep::descend, avg 692µs/call, recursion: max depth 1, sum of overlapping time 2.07ms
32 |  |  |  |  | }
33 |  |  |  |  |
34 |  |  |  |  | sub hash_elements
35 |  |  |  |  | # spent 3.57ms (2.29+1.28) within Test::Deep::Hash::hash_elements which was called 3 times, avg 1.19ms/call: # 3 times (2.29ms+1.28ms) by Test::Deep::Hash::descend at line 31, avg 1.19ms/call {
36 | 9 | 450µs |  |  | require Test::Deep::HashElements;
37 |  |  |  |  |
38 |  |  |  |  | my $self = shift;
39 |  |  |  |  |
40 |  |  | 3 | 379µs | return Test::Deep::HashElements->new(@_); # spent 379µs making 3 calls to Test::Deep::Cmp::new, avg 126µs/call
41 |  |  |  |  | }
42 |  |  |  |  |
43 |  |  |  |  | sub hash_keys
44 |  |  |  |  | # spent 3.25ms (1.91+1.34) within Test::Deep::Hash::hash_keys which was called 3 times, avg 1.08ms/call: # 3 times (1.91ms+1.34ms) by Test::Deep::Hash::descend at line 27, avg 1.08ms/call {
45 | 12 | 403µs |  |  | require Test::Deep::HashKeys;
46 |  |  |  |  |
47 |  |  |  |  | my $self = shift;
48 |  |  |  |  | my $exp = shift;
49 |  |  |  |  |
50 |  |  | 3 | 494µs | return Test::Deep::HashKeys->new(keys %$exp); # spent 494µs making 3 calls to Test::Deep::Cmp::new, avg 165µs/call
51 |  |  |  |  | }
52 |  |  |  |  |
53 |  |  |  |  | sub reset_arrow
54 |  |  |  |  | {
55 |  |  |  |  | return 0;
56 |  |  |  |  | }
57 |  |  |  |  |
58 |  |  |  |  | package Test::Deep::SuperHash;
59 |  |  |  |  |
60 | 2 | 517µs | 2 | 1.00ms | # spent 528µs (55+473) within Test::Deep::SuperHash::BEGIN@60 which was called: # once (55µs+473µs) by Test::Deep::__ANON__[/home/ss5/perl5/perlbrew/perls/perl-5.14.1/lib/site_perl/5.14.1/Test/Deep.pm:80] at line 60 use base 'Test::Deep::Hash'; # spent 528µs making 1 call to Test::Deep::SuperHash::BEGIN@60 # spent 473µs making 1 call to base::import
61 |  |  |  |  |
62 |  |  |  |  | sub hash_elements
63 |  |  |  |  | {
64 |  |  |  |  | require Test::Deep::HashElements;
65 |  |  |  |  |
66 |  |  |  |  | my $self = shift;
67 |  |  |  |  |
68 |  |  |  |  | return Test::Deep::SuperHashElements->new(@_);
69 |  |  |  |  | }
70 |  |  |  |  |
71 |  |  |  |  | sub hash_keys
72 |  |  |  |  | {
73 |  |  |  |  | require Test::Deep::HashKeys;
74 |  |  |  |  |
75 |  |  |  |  | my $self = shift;
76 |  |  |  |  | my $exp = shift;
77 |  |  |  |  |
78 |  |  |  |  | return Test::Deep::SuperHashKeys->new(keys %$exp);
79 |  |  |  |  | }
80 |  |  |  |  |
81 |  |  |  |  | package Test::Deep::SubHash;
82 |  |  |  |  |
83 | 2 | 383µs | 2 | 576µs | # spent 303µs (29+273) within Test::Deep::SubHash::BEGIN@83 which was called: # once (29µs+273µs) by Test::Deep::__ANON__[/home/ss5/perl5/perlbrew/perls/perl-5.14.1/lib/site_perl/5.14.1/Test/Deep.pm:80] at line 83 use base 'Test::Deep::Hash'; # spent 303µs making 1 call to Test::Deep::SubHash::BEGIN@83 # spent 273µs making 1 call to base::import
84 |  |  |  |  |
85 |  |  |  |  | sub hash_elements
86 |  |  |  |  | {
87 |  |  |  |  | require Test::Deep::HashElements;
88 |  |  |  |  |
89 |  |  |  |  | my $self = shift;
90 |  |  |  |  |
91 |  |  |  |  | return Test::Deep::SubHashElements->new(@_);
92 |  |  |  |  | }
93 |  |  |  |  |
94 |  |  |  |  | sub hash_keys
95 |  |  |  |  | {
96 |  |  |  |  | require Test::Deep::HashKeys;
97 |  |  |  |  |
98 |  |  |  |  | my $self = shift;
99 |  |  |  |  | my $exp = shift;
100 |  |  |  |  |
101 |  |  |  |  | return Test::Deep::SubHashKeys->new(keys %$exp);
102 |  |  |  |  | }
103 |  |  |  |  |
104 | 1 | 8µs |  |  | 1;