| Filename | /usr/share/perl5/DBIx/Class/AccessorGroup.pm |
| Statements | Executed 2674 statements in 5.99ms |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 531 | 1 | 1 | 6.93ms | 24.8ms | DBIx::Class::AccessorGroup::get_component_class |
| 5 | 1 | 1 | 53µs | 96µs | DBIx::Class::AccessorGroup::set_component_class |
| 1 | 1 | 1 | 14µs | 22µs | DBIx::Class::AccessorGroup::BEGIN@3 |
| 1 | 1 | 1 | 14µs | 23µs | DBIx::Class::AccessorGroup::BEGIN@21 |
| 1 | 1 | 1 | 10µs | 40µs | DBIx::Class::AccessorGroup::BEGIN@7 |
| 1 | 1 | 1 | 9µs | 5.36ms | DBIx::Class::AccessorGroup::BEGIN@6 |
| 1 | 1 | 1 | 8µs | 16µs | DBIx::Class::AccessorGroup::BEGIN@4 |
| 1 | 1 | 1 | 8µs | 113µs | DBIx::Class::AccessorGroup::BEGIN@8 |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | package DBIx::Class::AccessorGroup; | ||||
| 2 | |||||
| 3 | 2 | 36µs | 2 | 30µs | # spent 22µs (14+8) within DBIx::Class::AccessorGroup::BEGIN@3 which was called:
# once (14µs+8µs) by base::import at line 3 # spent 22µs making 1 call to DBIx::Class::AccessorGroup::BEGIN@3
# spent 8µs making 1 call to strict::import |
| 4 | 2 | 40µs | 2 | 24µs | # spent 16µs (8+8) within DBIx::Class::AccessorGroup::BEGIN@4 which was called:
# once (8µs+8µs) by base::import at line 4 # spent 16µs making 1 call to DBIx::Class::AccessorGroup::BEGIN@4
# spent 8µs making 1 call to warnings::import |
| 5 | |||||
| 6 | 2 | 163µs | 2 | 5.36ms | # spent 5.36ms (9µs+5.35) within DBIx::Class::AccessorGroup::BEGIN@6 which was called:
# once (9µs+5.35ms) by base::import at line 6 # spent 5.36ms making 1 call to DBIx::Class::AccessorGroup::BEGIN@6
# spent 5.35ms making 1 call to base::import, recursion: max depth 3, sum of overlapping time 5.35ms |
| 7 | 2 | 61µs | 2 | 70µs | # spent 40µs (10+30) within DBIx::Class::AccessorGroup::BEGIN@7 which was called:
# once (10µs+30µs) by base::import at line 7 # spent 40µs making 1 call to DBIx::Class::AccessorGroup::BEGIN@7
# spent 30µs making 1 call to Exporter::import |
| 8 | 2 | 213µs | 2 | 218µs | # spent 113µs (8+105) within DBIx::Class::AccessorGroup::BEGIN@8 which was called:
# once (8µs+105µs) by base::import at line 8 # spent 113µs making 1 call to DBIx::Class::AccessorGroup::BEGIN@8
# spent 105µs making 1 call to namespace::clean::import |
| 9 | |||||
| 10 | 1 | 300ns | my $successfully_loaded_components; | ||
| 11 | |||||
| 12 | # spent 24.8ms (6.93+17.9) within DBIx::Class::AccessorGroup::get_component_class which was called 531 times, avg 47µs/call:
# 531 times (6.93ms+17.9ms) by DBIx::Class::ResultSource::result_class or DBIx::Class::ResultSource::resultset_class or DBIx::Class::Storage::DBI::sql_maker_class or DBIx::Class::Storage::cursor_class at line 2 of (eval 171)[Class/Accessor/Grouped.pm:764], avg 47µs/call | ||||
| 13 | 531 | 900µs | 531 | 6.47ms | my $class = $_[0]->get_inherited($_[1]); # spent 6.47ms making 531 calls to Class::Accessor::Grouped::get_inherited, avg 12µs/call |
| 14 | |||||
| 15 | # It's already an object, just go for it. | ||||
| 16 | 531 | 1.30ms | 531 | 373µs | return $class if blessed $class; # spent 373µs making 531 calls to Scalar::Util::blessed, avg 702ns/call |
| 17 | |||||
| 18 | 531 | 454µs | if (defined $class and ! $successfully_loaded_components->{$class} ) { | ||
| 19 | 177 | 233µs | 177 | 10.9ms | $_[0]->ensure_class_loaded($class); # spent 10.9ms making 177 calls to Class::C3::Componentised::ensure_class_loaded, avg 61µs/call |
| 20 | |||||
| 21 | 2 | 382µs | 2 | 32µs | # spent 23µs (14+9) within DBIx::Class::AccessorGroup::BEGIN@21 which was called:
# once (14µs+9µs) by base::import at line 21 # spent 23µs making 1 call to DBIx::Class::AccessorGroup::BEGIN@21
# spent 9µs making 1 call to strict::unimport |
| 22 | $successfully_loaded_components->{$class} | ||||
| 23 | = ${"${class}::__LOADED__BY__DBIC__CAG__COMPONENT_CLASS__"} | ||||
| 24 | 177 | 586µs | = do { \(my $anon = 'loaded') }; | ||
| 25 | 177 | 554µs | 177 | 178µs | weaken($successfully_loaded_components->{$class}); # spent 178µs making 177 calls to Scalar::Util::weaken, avg 1µs/call |
| 26 | } | ||||
| 27 | |||||
| 28 | 531 | 1.00ms | $class; | ||
| 29 | }; | ||||
| 30 | |||||
| 31 | # spent 96µs (53+42) within DBIx::Class::AccessorGroup::set_component_class which was called 5 times, avg 19µs/call:
# 5 times (53µs+42µs) by DBIx::Class::Storage::DBI::datetime_parser_type or DBIx::Class::Storage::DBI::sql_maker_class or DBIx::Class::Storage::cursor_class at line 2 of (eval 171)[Class/Accessor/Grouped.pm:764], avg 19µs/call | ||||
| 32 | 5 | 51µs | 5 | 42µs | shift->set_inherited(@_); # spent 42µs making 5 calls to Class::Accessor::Grouped::set_inherited, avg 8µs/call |
| 33 | } | ||||
| 34 | |||||
| 35 | 1 | 4µs | 1; | ||
| 36 | |||||
| 37 | =head1 NAME | ||||
| 38 | |||||
| 39 | DBIx::Class::AccessorGroup - See Class::Accessor::Grouped | ||||
| 40 | |||||
| 41 | =head1 SYNOPSIS | ||||
| 42 | |||||
| 43 | =head1 DESCRIPTION | ||||
| 44 | |||||
| 45 | This class now exists in its own right on CPAN as Class::Accessor::Grouped | ||||
| 46 | |||||
| 47 | =head1 FURTHER QUESTIONS? | ||||
| 48 | |||||
| 49 | Check the list of L<additional DBIC resources|DBIx::Class/GETTING HELP/SUPPORT>. | ||||
| 50 | |||||
| 51 | =head1 COPYRIGHT AND LICENSE | ||||
| 52 | |||||
| 53 | This module is free software L<copyright|DBIx::Class/COPYRIGHT AND LICENSE> | ||||
| 54 | by the L<DBIx::Class (DBIC) authors|DBIx::Class/AUTHORS>. You can | ||||
| 55 | redistribute it and/or modify it under the same terms as the | ||||
| 56 | L<DBIx::Class library|DBIx::Class/COPYRIGHT AND LICENSE>. | ||||
| 57 | |||||
| 58 | 1 | 141µs | =cut # spent 141µs making 1 call to B::Hooks::EndOfScope::XS::__ANON__ |