| Filename | /home/doy/perl5/perlbrew/perls/perl-5.10.1/lib/site_perl/5.10.1/MooseX/Types/Combine.pm |
| Statements | Executed 659 statements in 17.1ms |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 1 | 1 | 1 | 20.0ms | 455ms | MooseX::Types::Combine::BEGIN@12 |
| 28 | 28 | 28 | 14.4ms | 1.98s | MooseX::Types::Combine::import |
| 29 | 2 | 2 | 1.07ms | 1.07ms | MooseX::Types::Combine::provide_types_from |
| 1 | 1 | 1 | 72µs | 90µs | MooseX::Types::Combine::BEGIN@10 |
| 1 | 1 | 1 | 47µs | 124µs | MooseX::Types::Combine::BEGIN@73 |
| 1 | 1 | 1 | 37µs | 106µs | MooseX::Types::Combine::BEGIN@11 |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | =head1 NAME | ||||
| 2 | |||||
| - - | |||||
| 7 | package MooseX::Types::Combine; | ||||
| 8 | 1 | 4µs | our $VERSION = "0.23"; | ||
| 9 | |||||
| 10 | 3 | 96µs | 2 | 109µs | # spent 90µs (72+19) within MooseX::Types::Combine::BEGIN@10 which was called:
# once (72µs+19µs) by base::import at line 10 # spent 90µs making 1 call to MooseX::Types::Combine::BEGIN@10
# spent 19µs making 1 call to strict::import |
| 11 | 3 | 87µs | 2 | 174µs | # spent 106µs (37+69) within MooseX::Types::Combine::BEGIN@11 which was called:
# once (37µs+69µs) by base::import at line 11 # spent 106µs making 1 call to MooseX::Types::Combine::BEGIN@11
# spent 69µs making 1 call to warnings::import |
| 12 | 3 | 1.21ms | 1 | 455ms | # spent 455ms (20.0+435) within MooseX::Types::Combine::BEGIN@12 which was called:
# once (20.0ms+435ms) by base::import at line 12 # spent 455ms making 1 call to MooseX::Types::Combine::BEGIN@12 |
| 13 | |||||
| 14 | =head1 SYNOPSIS | ||||
| 15 | |||||
| - - | |||||
| 35 | # spent 1.98s (14.4ms+1.97) within MooseX::Types::Combine::import which was called 28 times, avg 70.8ms/call:
# once (551µs+1.52s) by Markdent::Handler::HTMLStream::Document::BEGIN@9 at line 9 of Markdent/Handler/HTMLStream/Document.pm
# once (731µs+27.1ms) by Markdent::Role::HTMLStream::BEGIN@10 at line 10 of Markdent/Role/HTMLStream.pm
# once (647µs+26.7ms) by Markdent::Parser::BEGIN@12 at line 12 of Markdent/Parser.pm
# once (666µs+25.7ms) by Markdent::Dialect::Standard::SpanParser::BEGIN@29 at line 29 of Markdent/Dialect/Standard/SpanParser.pm
# once (525µs+20.0ms) by Markdent::Event::HTMLEntity::BEGIN@9 at line 9 of Markdent/Event/HTMLEntity.pm
# once (546µs+18.2ms) by Markdent::Dialect::Standard::BlockParser::BEGIN@29 at line 29 of Markdent/Dialect/Standard/BlockParser.pm
# once (496µs+17.3ms) by Markdent::Event::EndHTMLTag::BEGIN@9 at line 9 of Markdent/Event/EndHTMLTag.pm
# once (637µs+17.0ms) by Markdent::Simple::Document::BEGIN@11 at line 11 of Markdent/Simple/Document.pm
# once (553µs+16.6ms) by Markdent::Event::AutoLink::BEGIN@9 at line 9 of Markdent/Event/AutoLink.pm
# once (491µs+16.3ms) by Markdent::Event::HTMLCommentBlock::BEGIN@9 at line 9 of Markdent/Event/HTMLCommentBlock.pm
# once (491µs+15.8ms) by Markdent::Event::HTMLComment::BEGIN@9 at line 9 of Markdent/Event/HTMLComment.pm
# once (501µs+15.8ms) by Markdent::Event::StartHTMLTag::BEGIN@9 at line 9 of Markdent/Event/StartHTMLTag.pm
# once (481µs+15.8ms) by Markdent::Role::BalancedEvent::BEGIN@10 at line 10 of Markdent/Role/BalancedEvent.pm
# once (463µs+15.7ms) by Markdent::Event::StartLink::BEGIN@9 at line 9 of Markdent/Event/StartLink.pm
# once (489µs+15.7ms) by Markdent::Event::Text::BEGIN@9 at line 9 of Markdent/Event/Text.pm
# once (495µs+15.7ms) by Markdent::Event::Image::BEGIN@9 at line 9 of Markdent/Event/Image.pm
# once (497µs+15.6ms) by Markdent::Event::HTMLTag::BEGIN@9 at line 9 of Markdent/Event/HTMLTag.pm
# once (559µs+15.3ms) by Markdent::Event::EndStrong::BEGIN@9 at line 9 of Markdent/Event/EndStrong.pm
# once (473µs+15.1ms) by Markdent::Event::HTMLBlock::BEGIN@9 at line 9 of Markdent/Event/HTMLBlock.pm
# once (497µs+15.0ms) by Markdent::Event::StartCode::BEGIN@9 at line 9 of Markdent/Event/StartCode.pm
# once (467µs+14.9ms) by Markdent::Event::StartStrong::BEGIN@9 at line 9 of Markdent/Event/StartStrong.pm
# once (467µs+14.9ms) by Markdent::Role::DebugPrinter::BEGIN@9 at line 9 of Markdent/Role/DebugPrinter.pm
# once (474µs+14.8ms) by Markdent::Event::Preformatted::BEGIN@9 at line 9 of Markdent/Event/Preformatted.pm
# once (453µs+14.9ms) by Markdent::Event::StartEmphasis::BEGIN@9 at line 9 of Markdent/Event/StartEmphasis.pm
# once (482µs+14.7ms) by Markdent::Event::EndCode::BEGIN@9 at line 9 of Markdent/Event/EndCode.pm
# once (501µs+14.7ms) by Markdent::Event::EndEmphasis::BEGIN@9 at line 9 of Markdent/Event/EndEmphasis.pm
# once (402µs+7.87ms) by Markdent::Event::EndHeader::BEGIN@9 at line 9 of Markdent/Event/EndHeader.pm
# once (371µs+7.84ms) by Markdent::Event::StartHeader::BEGIN@9 at line 9 of Markdent/Event/StartHeader.pm | ||||
| 36 | 28 | 243µs | my ($class, @types) = @_; | ||
| 37 | 28 | 123µs | my $caller = caller; | ||
| 38 | |||||
| 39 | 28 | 459µs | 28 | 1.03ms | my @type_libs = $class->provide_types_from; # spent 1.03ms making 28 calls to MooseX::Types::Combine::provide_types_from, avg 37µs/call |
| 40 | 56 | 913µs | 56 | 1.52s | Class::MOP::load_class($_) for @type_libs; # spent 1.52s making 56 calls to Class::MOP::load_class, avg 27.2ms/call, recursion: max depth 3, sum of overlapping time 1.28ms |
| 41 | |||||
| 42 | 56 | 164µs | my %types = map { | ||
| 43 | 28 | 2.15ms | my $lib = $_; | ||
| 44 | 56 | 2.32ms | 56 | 3.01ms | map +($_ => $lib), $lib->type_names # spent 3.01ms making 56 calls to MooseX::Types::Base::type_names, avg 54µs/call |
| 45 | } @type_libs; | ||||
| 46 | |||||
| 47 | 28 | 62µs | my %from; | ||
| 48 | 28 | 172µs | for my $type (@types) { | ||
| 49 | 54 | 153µs | die | ||
| 50 | "$caller asked for a type ($type) which is not found in any of the" | ||||
| 51 | . " type libraries (@type_libs) combined by $class\n" | ||||
| 52 | unless $types{$type}; | ||||
| 53 | |||||
| 54 | 54 | 500µs | push @{ $from{ $types{$type} } }, $type; | ||
| 55 | } | ||||
| 56 | |||||
| 57 | $_->import({ -into => $caller }, @{ $from{ $_ } }) | ||||
| 58 | 56 | 6.93ms | 31 | 443ms | for keys %from; # spent 443ms making 31 calls to MooseX::Types::Base::import, avg 14.3ms/call |
| 59 | } | ||||
| 60 | |||||
| 61 | =head1 CLASS METHODS | ||||
| 62 | |||||
| - - | |||||
| 69 | # spent 1.07ms within MooseX::Types::Combine::provide_types_from which was called 29 times, avg 37µs/call:
# 28 times (1.03ms+0s) by MooseX::Types::Combine::import at line 39, avg 37µs/call
# once (47µs+0s) by Markdent::Handler::HTMLStream::Document::BEGIN@9 at line 11 of Markdent/Types.pm | ||||
| 70 | 29 | 145µs | my ($class, @libs) = @_; | ||
| 71 | |||||
| 72 | my $store = | ||||
| 73 | 61 | 733µs | 2 | 200µs | # spent 124µs (47+76) within MooseX::Types::Combine::BEGIN@73 which was called:
# once (47µs+76µs) by base::import at line 73 # spent 124µs making 1 call to MooseX::Types::Combine::BEGIN@73
# spent 76µs making 1 call to strict::unimport |
| 74 | |||||
| 75 | 29 | 76µs | @$store = @libs if @libs; | ||
| 76 | |||||
| 77 | 29 | 540µs | @$store; | ||
| 78 | } | ||||
| 79 | |||||
| 80 | =head1 SEE ALSO | ||||
| 81 | |||||
| - - | |||||
| 95 | 1 | 10µs | 1; |