Profile of DBIx/Class/AccessorGroup.pm

← Index
NYTProf Performance Profile «block view•line view•sub view»
For xt/tapper-mcp-scheduler-with-db-longrun.t
Run on Tue May 22 17:18:39 2012
Reported on Tue May 22 17:22:59 2012

Filename | /2home/ss5/perl5/perlbrew/perls/perl-5.12.3/lib/site_perl/5.12.3/DBIx/Class/AccessorGroup.pm
Statements | Executed 105476 statements in 240ms

Subroutines
Calls | P | F | Exclusive Time | Inclusive Time | Subroutine
--- | --- | --- | --- | --- | ---
35102 | 5 | 5 | 253ms | 669ms | DBIx::Class::AccessorGroup::::get_component_classDBIx::Class::AccessorGroup::get_component_class
12 | 4 | 4 | 94µs | 206µs | DBIx::Class::AccessorGroup::::set_component_classDBIx::Class::AccessorGroup::set_component_class
1 | 1 | 1 | 12µs | 15µs | DBIx::Class::AccessorGroup::::BEGIN@3DBIx::Class::AccessorGroup::BEGIN@3
1 | 1 | 1 | 9µs | 46µs | DBIx::Class::AccessorGroup::::BEGIN@7DBIx::Class::AccessorGroup::BEGIN@7
1 | 1 | 1 | 9µs | 4.05ms | DBIx::Class::AccessorGroup::::BEGIN@6DBIx::Class::AccessorGroup::BEGIN@6
1 | 1 | 1 | 8µs | 20µs | DBIx::Class::AccessorGroup::::BEGIN@4DBIx::Class::AccessorGroup::BEGIN@4
1 | 1 | 1 | 8µs | 170µs | DBIx::Class::AccessorGroup::::BEGIN@8DBIx::Class::AccessorGroup::BEGIN@8
1 | 1 | 1 | 7µs | 16µs | DBIx::Class::AccessorGroup::::BEGIN@18DBIx::Class::AccessorGroup::BEGIN@18

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

Line | State ments | Time on line | Calls | Time in subs | Code
--- | --- | --- | --- | --- | ---
1 |  |  |  |  | package DBIx::Class::AccessorGroup;
2 |  |  |  |  |
3 | 3 | 20µs | 2 | 18µs | # spent 15µs (12+3) within DBIx::Class::AccessorGroup::BEGIN@3 which was called: # once (12µs+3µs) by base::import at line 3 use strict; # spent 15µs making 1 call to DBIx::Class::AccessorGroup::BEGIN@3 # spent 3µs making 1 call to strict::import
4 | 3 | 21µs | 2 | 32µs | # spent 20µs (8+12) within DBIx::Class::AccessorGroup::BEGIN@4 which was called: # once (8µs+12µs) by base::import at line 4 use warnings; # spent 20µs making 1 call to DBIx::Class::AccessorGroup::BEGIN@4 # spent 12µs making 1 call to warnings::import
5 |  |  |  |  |
6 | 3 | 28µs | 2 | 4.05ms | # spent 4.05ms (9µs+4.04) within DBIx::Class::AccessorGroup::BEGIN@6 which was called: # once (9µs+4.04ms) by base::import at line 6 use base qw/Class::Accessor::Grouped/; # spent 4.05ms making 1 call to DBIx::Class::AccessorGroup::BEGIN@6 # spent 4.04ms making 1 call to base::import, recursion: max depth 1, sum of overlapping time 4.04ms
7 | 3 | 22µs | 2 | 82µs | # spent 46µs (9+36) within DBIx::Class::AccessorGroup::BEGIN@7 which was called: # once (9µs+36µs) by base::import at line 7 use Scalar::Util qw/weaken/; # spent 46µs making 1 call to DBIx::Class::AccessorGroup::BEGIN@7 # spent 36µs making 1 call to Exporter::import
8 | 3 | 63µs | 2 | 332µs | # spent 170µs (8+162) within DBIx::Class::AccessorGroup::BEGIN@8 which was called: # once (8µs+162µs) by base::import at line 8 use namespace::clean; # spent 170µs making 1 call to DBIx::Class::AccessorGroup::BEGIN@8 # spent 162µs making 1 call to namespace::clean::import
9 |  |  |  |  |
10 | 1 | 100ns |  |  | my $successfully_loaded_components;
11 |  |  |  |  |
12 |  |  |  |  | # spent 669ms (253+416) within DBIx::Class::AccessorGroup::get_component_class which was called 35102 times, avg 19µs/call: # 22705 times (141ms+180ms) by DBIx::Class::ResultSource::result_class at line 2 of (eval 296)[Class/Accessor/Grouped.pm:807], avg 14µs/call # 7692 times (81.4ms+63.8ms) by DBIx::Class::ResultSource::resultset_class at line 2 of (eval 295)[Class/Accessor/Grouped.pm:807], avg 19µs/call # 4699 times (30.7ms+148ms) by DBIx::Class::Storage::cursor_class at line 2 of (eval 1390)[Class/Accessor/Grouped.pm:807], avg 38µs/call # 5 times (114µs+13.4ms) by DBIx::Class::Storage::DBI::sql_maker_class at line 2 of (eval 1394)[Class/Accessor/Grouped.pm:807], avg 2.71ms/call # once (31µs+10.7ms) by DBIx::Class::Storage::DBI::datetime_parser_type at line 2 of (eval 1395)[Class/Accessor/Grouped.pm:807] sub get_component_class {
13 | 105306 | 239ms | 35102 | 389ms | my $class = $_[0]->get_inherited($_[1]); # spent 389ms making 35102 calls to Class::Accessor::Grouped::get_inherited, avg 11µs/call
14 |  |  |  |  |
15 | 138 | 677µs |  |  | if (defined $class and ! $successfully_loaded_components->{$class} ) {
16 |  |  | 46 | 26.4ms | $_[0]->ensure_class_loaded($class); # spent 26.4ms making 46 calls to Class::C3::Componentised::ensure_class_loaded, avg 574µs/call, recursion: max depth 1, sum of overlapping time 12µs
17 |  |  |  |  |
18 | 3 | 81µs | 2 | 25µs | # spent 16µs (7+9) within DBIx::Class::AccessorGroup::BEGIN@18 which was called: # once (7µs+9µs) by base::import at line 18 no strict 'refs'; # spent 16µs making 1 call to DBIx::Class::AccessorGroup::BEGIN@18 # spent 9µs making 1 call to strict::unimport
19 |  |  |  |  | $successfully_loaded_components->{$class}
20 |  |  |  |  | = ${"${class}::__LOADED__BY__DBIC__CAG__COMPONENT_CLASS__"}
21 |  |  |  |  | = do { \(my $anon = 'loaded') };
22 |  |  | 46 | 90µs | weaken($successfully_loaded_components->{$class}); # spent 90µs making 46 calls to Scalar::Util::weaken, avg 2µs/call
23 |  |  |  |  | }
24 |  |  |  |  |
25 |  |  |  |  | $class;
26 |  |  |  |  | };
27 |  |  |  |  |
28 |  |  |  |  | # spent 206µs (94+112) within DBIx::Class::AccessorGroup::set_component_class which was called 12 times, avg 17µs/call: # 6 times (40µs+58µs) by DBIx::Class::ResultSource::resultset_class at line 2 of (eval 295)[Class/Accessor/Grouped.pm:807], avg 16µs/call # 2 times (28µs+24µs) by DBIx::Class::Storage::cursor_class at line 2 of (eval 1390)[Class/Accessor/Grouped.pm:807], avg 26µs/call # 2 times (20µs+19µs) by DBIx::Class::Storage::DBI::sql_maker_class at line 2 of (eval 1394)[Class/Accessor/Grouped.pm:807], avg 20µs/call # 2 times (5µs+11µs) by DBIx::Class::Storage::DBI::datetime_parser_type at line 2 of (eval 1395)[Class/Accessor/Grouped.pm:807], avg 8µs/call sub set_component_class {
29 | 12 | 95µs | 12 | 112µs | shift->set_inherited(@_); # spent 112µs making 12 calls to Class::Accessor::Grouped::set_inherited, avg 9µs/call
30 |  |  |  |  | }
31 |  |  |  |  |
32 | 1 | 3µs |  |  | 1;
33 |  |  |  |  |
34 |  |  |  |  | =head1 NAME
35 |  |  |  |  |
36 |  |  |  |  | DBIx::Class::AccessorGroup - See Class::Accessor::Grouped
37 |  |  |  |  |
38 |  |  |  |  | =head1 SYNOPSIS
39 |  |  |  |  |
40 |  |  |  |  | =head1 DESCRIPTION
41 |  |  |  |  |
42 |  |  |  |  | This class now exists in its own right on CPAN as Class::Accessor::Grouped
43 |  |  |  |  |
44 |  |  |  |  | =head1 AUTHORS
45 |  |  |  |  |
46 |  |  |  |  | Matt S. Trout <mst@shadowcatsystems.co.uk>
47 |  |  |  |  |
48 |  |  |  |  | =head1 LICENSE
49 |  |  |  |  |
50 |  |  |  |  | You may distribute this code under the same terms as Perl itself.
51 |  |  |  |  |
52 |  |  |  |  | =cut
53 | 1 | 5µs | 1 | 111µs | # spent 111µs making 1 call to B::Hooks::EndOfScope::__ANON__[B/Hooks/EndOfScope.pm:26]