← Index
NYTProf Performance Profile   « block view • line view • sub view »
For 05.Domain_and_Item.t
  Run on Tue May 4 17:21:41 2010
Reported on Tue May 4 17:22:20 2010

File /usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Moose/Meta/Role/Application.pm
Statements Executed 1250
Statement Execution Time 2.87ms
Subroutines — ordered by exclusive time
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
2622860µs137msMoose::Meta::Role::Application::::applyMoose::Meta::Role::Application::apply
13722697µs898µsMoose::Meta::Role::Application::::is_method_excludedMoose::Meta::Role::Application::is_method_excluded
13722578µs798µsMoose::Meta::Role::Application::::is_method_aliasedMoose::Meta::Role::Application::is_method_aliased
2611200µs710µsMoose::Meta::Role::Application::::newMoose::Meta::Role::Application::new
2611114µs3.91msMoose::Meta::Role::Application::::apply_before_method_modifiersMoose::Meta::Role::Application::apply_before_method_modifiers
261199µs5.16msMoose::Meta::Role::Application::::apply_after_method_modifiersMoose::Meta::Role::Application::apply_after_method_modifiers
261195µs3.60msMoose::Meta::Role::Application::::apply_around_method_modifiersMoose::Meta::Role::Application::apply_around_method_modifiers
101163µs81µsMoose::Meta::Role::Application::::is_aliased_methodMoose::Meta::Role::Application::is_aliased_method
262249µs49µsMoose::Meta::Role::Application::::__ANON__[:14]Moose::Meta::Role::Application::__ANON__[:14]
262247µs47µsMoose::Meta::Role::Application::::__ANON__[:20]Moose::Meta::Role::Application::__ANON__[:20]
11114µs17µsMoose::Meta::Role::Application::::BEGIN@3Moose::Meta::Role::Application::BEGIN@3
1118µs108µsMoose::Meta::Role::Application::::BEGIN@5Moose::Meta::Role::Application::BEGIN@5
1117µs16µsMoose::Meta::Role::Application::::BEGIN@4Moose::Meta::Role::Application::BEGIN@4
0000s0sMoose::Meta::Role::Application::::apply_attributesMoose::Meta::Role::Application::apply_attributes
0000s0sMoose::Meta::Role::Application::::apply_method_modifiersMoose::Meta::Role::Application::apply_method_modifiers
0000s0sMoose::Meta::Role::Application::::apply_methodsMoose::Meta::Role::Application::apply_methods
0000s0sMoose::Meta::Role::Application::::apply_override_method_modifiersMoose::Meta::Role::Application::apply_override_method_modifiers
0000s0sMoose::Meta::Role::Application::::check_required_attributesMoose::Meta::Role::Application::check_required_attributes
0000s0sMoose::Meta::Role::Application::::check_required_methodsMoose::Meta::Role::Application::check_required_methods
0000s0sMoose::Meta::Role::Application::::check_role_exclusionsMoose::Meta::Role::Application::check_role_exclusions
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package Moose::Meta::Role::Application;
2
3321µs220µs
# spent 17µs (14+3) within Moose::Meta::Role::Application::BEGIN@3 which was called # once (14µs+3µs) by Moose::BEGIN@28 at line 3
use strict;
# spent 17µs making 1 call to Moose::Meta::Role::Application::BEGIN@3 # spent 3µs making 1 call to strict::import
4318µs225µs
# spent 16µs (7+9) within Moose::Meta::Role::Application::BEGIN@4 which was called # once (7µs+9µs) by Moose::BEGIN@28 at line 4
use warnings;
# spent 16µs making 1 call to Moose::Meta::Role::Application::BEGIN@4 # spent 9µs making 1 call to warnings::import
53461µs2209µs
# spent 108µs (8+101) within Moose::Meta::Role::Application::BEGIN@5 which was called # once (8µs+101µs) by Moose::BEGIN@28 at line 5
use metaclass;
# spent 108µs making 1 call to Moose::Meta::Role::Application::BEGIN@5 # spent 101µs making 1 call to metaclass::import
6
71600nsour $VERSION = '0.98';
8120µs$VERSION = eval $VERSION;
91400nsour $AUTHORITY = 'cpan:STEVAN';
10
11__PACKAGE__->meta->add_attribute('method_exclusions' => (
12 init_arg => '-excludes',
13 reader => 'get_method_exclusions',
142676µs
# spent 49µs within Moose::Meta::Role::Application::__ANON__[/usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Moose/Meta/Role/Application.pm:14] which was called 26 times, avg 2µs/call: # 13 times (30µs+0s) by Moose::Meta::Role::Application::ToClass::_new at line 17 of (eval 0)[Class/MOP/Method/Generated.pm:54] at line 54 of Class/MOP/Method/Generated.pm, avg 2µs/call # 13 times (19µs+0s) by Moose::Meta::Role::Application::ToRole::_new at line 11 of (eval 0)[Class/MOP/Method/Generated.pm:54] at line 54 of Class/MOP/Method/Generated.pm, avg 1µs/call
default => sub { [] }
1517µs2294µs));
# spent 277µs making 1 call to Class::MOP::Mixin::HasAttributes::add_attribute # spent 17µs making 1 call to Moose::Meta::Role::Application::meta
16
17__PACKAGE__->meta->add_attribute('method_aliases' => (
18 init_arg => '-alias',
19 reader => 'get_method_aliases',
202670µs
# spent 47µs within Moose::Meta::Role::Application::__ANON__[/usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Moose/Meta/Role/Application.pm:20] which was called 26 times, avg 2µs/call: # 13 times (28µs+0s) by Moose::Meta::Role::Application::ToClass::_new at line 22 of (eval 0)[Class/MOP/Method/Generated.pm:54] at line 54 of Class/MOP/Method/Generated.pm, avg 2µs/call # 13 times (19µs+0s) by Moose::Meta::Role::Application::ToRole::_new at line 16 of (eval 0)[Class/MOP/Method/Generated.pm:54] at line 54 of Class/MOP/Method/Generated.pm, avg 1µs/call
default => sub { {} }
2114µs2283µs));
# spent 272µs making 1 call to Class::MOP::Mixin::HasAttributes::add_attribute # spent 11µs making 1 call to Moose::Meta::Role::Application::meta
22
23
# spent 710µs (200+510) within Moose::Meta::Role::Application::new which was called 26 times, avg 27µs/call: # 26 times (200µs+510µs) by Moose::Meta::Role::apply at line 419 of Moose/Meta/Role.pm, avg 27µs/call
sub new {
24130179µs my ($class, %params) = @_;
25
26 if ( exists $params{excludes} && !exists $params{'-excludes'} ) {
27 $params{'-excludes'} = delete $params{excludes};
28 }
29 if ( exists $params{alias} && !exists $params{'-alias'} ) {
30 $params{'-alias'} = delete $params{alias};
31 }
32
33 if ( exists $params{'-excludes'} ) {
34
35 # I wish we had coercion here :)
36 $params{'-excludes'} = (
37 ref $params{'-excludes'} eq 'ARRAY'
38 ? $params{'-excludes'}
39 : [ $params{'-excludes'} ]
40 );
41 }
42
43 $class->_new(\%params);
# spent 309µs making 13 calls to Moose::Meta::Role::Application::ToClass::_new, avg 24µs/call # spent 200µs making 13 calls to Moose::Meta::Role::Application::ToRole::_new, avg 15µs/call
44}
45
46
# spent 898µs (697+200) within Moose::Meta::Role::Application::is_method_excluded which was called 137 times, avg 7µs/call: # 69 times (328µs+94µs) by Moose::Meta::Role::Application::ToRole::apply_methods at line 77 of Moose/Meta/Role/Application/ToRole.pm, avg 6µs/call # 68 times (369µs+106µs) by Moose::Meta::Role::Application::ToClass::apply_methods at line 154 of Moose/Meta/Role/Application/ToClass.pm, avg 7µs/call
sub is_method_excluded {
47411586µs my ($self, $method_name) = @_;
48 foreach (@{$self->get_method_exclusions}) {
# spent 200µs making 137 calls to Moose::Meta::Role::Application::get_method_exclusions, avg 1µs/call
49 return 1 if $_ eq $method_name;
50 }
51 return 0;
52}
53
54
# spent 798µs (578+220) within Moose::Meta::Role::Application::is_method_aliased which was called 137 times, avg 6µs/call: # 69 times (277µs+101µs) by Moose::Meta::Role::Application::ToRole::apply_methods at line 97 of Moose/Meta/Role/Application/ToRole.pm, avg 5µs/call # 68 times (301µs+119µs) by Moose::Meta::Role::Application::ToClass::apply_methods at line 170 of Moose/Meta/Role/Application/ToClass.pm, avg 6µs/call
sub is_method_aliased {
55274479µs my ($self, $method_name) = @_;
56 exists $self->get_method_aliases->{$method_name} ? 1 : 0
# spent 220µs making 137 calls to Moose::Meta::Role::Application::get_method_aliases, avg 2µs/call
57}
58
59
# spent 81µs (63+17) within Moose::Meta::Role::Application::is_aliased_method which was called 10 times, avg 8µs/call: # 10 times (63µs+17µs) by Moose::Meta::Role::Application::ToRole::check_required_methods at line 41 of Moose/Meta/Role/Application/ToRole.pm, avg 8µs/call
sub is_aliased_method {
603056µs my ($self, $method_name) = @_;
61 my %aliased_names = reverse %{$self->get_method_aliases};
# spent 18µs making 10 calls to Moose::Meta::Role::Application::get_method_aliases, avg 2µs/call
62 exists $aliased_names{$method_name} ? 1 : 0;
63}
64
65
# spent 137ms (860µs+137) within Moose::Meta::Role::Application::apply which was called 26 times, avg 5.28ms/call: # 13 times (464µs+105ms) by Moose::Meta::Role::Application::ToClass::apply at line 31 of Moose/Meta/Role/Application/ToClass.pm, avg 8.09ms/call # 13 times (396µs+31.9ms) by Moose::Meta::Role::Application::ToRole::apply at line 17 of Moose/Meta/Role/Application/ToRole.pm, avg 2.48ms/call
sub apply {
66260622µs my $self = shift;
67
68 $self->check_role_exclusions(@_);
# spent 3.08ms making 13 calls to Moose::Meta::Role::Application::ToClass::check_role_exclusions, avg 237µs/call # spent 301µs making 13 calls to Moose::Meta::Role::Application::ToRole::check_role_exclusions, avg 23µs/call
69 $self->check_required_methods(@_);
# spent 1.32ms making 13 calls to Moose::Meta::Role::Application::ToRole::check_required_methods, avg 102µs/call # spent 401µs making 13 calls to Moose::Meta::Role::Application::ToClass::check_required_methods, avg 31µs/call
70 $self->check_required_attributes(@_);
# spent 18µs making 13 calls to Moose::Meta::Role::Application::ToClass::check_required_attributes, avg 1µs/call # spent 13µs making 13 calls to Moose::Meta::Role::Application::ToRole::check_required_attributes, avg 985ns/call
71
72 $self->apply_attributes(@_);
# spent 61.5ms making 13 calls to Moose::Meta::Role::Application::ToClass::apply_attributes, avg 4.73ms/call # spent 2.63ms making 13 calls to Moose::Meta::Role::Application::ToRole::apply_attributes, avg 202µs/call
73 $self->apply_methods(@_);
# spent 28.0ms making 13 calls to Moose::Meta::Role::Application::ToClass::apply_methods, avg 2.15ms/call # spent 26.2ms making 13 calls to Moose::Meta::Role::Application::ToRole::apply_methods, avg 2.02ms/call
74
75 $self->apply_override_method_modifiers(@_);
# spent 250µs making 13 calls to Moose::Meta::Role::Application::ToClass::apply_override_method_modifiers, avg 19µs/call # spent 156µs making 13 calls to Moose::Meta::Role::Application::ToRole::apply_override_method_modifiers, avg 12µs/call
76
77 $self->apply_before_method_modifiers(@_);
# spent 3.91ms making 26 calls to Moose::Meta::Role::Application::apply_before_method_modifiers, avg 150µs/call
78 $self->apply_around_method_modifiers(@_);
# spent 3.60ms making 26 calls to Moose::Meta::Role::Application::apply_around_method_modifiers, avg 138µs/call
79 $self->apply_after_method_modifiers(@_);
# spent 5.16ms making 26 calls to Moose::Meta::Role::Application::apply_after_method_modifiers, avg 198µs/call
80}
81
82sub check_role_exclusions { Carp::croak "Abstract Method" }
83sub check_required_methods { Carp::croak "Abstract Method" }
84sub check_required_attributes { Carp::croak "Abstract Method" }
85
86sub apply_attributes { Carp::croak "Abstract Method" }
87sub apply_methods { Carp::croak "Abstract Method" }
88sub apply_override_method_modifiers { Carp::croak "Abstract Method" }
89sub apply_method_modifiers { Carp::croak "Abstract Method" }
90
9126103µs263.80ms
# spent 3.91ms (114µs+3.80) within Moose::Meta::Role::Application::apply_before_method_modifiers which was called 26 times, avg 150µs/call: # 26 times (114µs+3.80ms) by Moose::Meta::Role::Application::apply at line 77, avg 150µs/call
sub apply_before_method_modifiers { (shift)->apply_method_modifiers('before' => @_) }
# spent 3.38ms making 13 calls to Moose::Meta::Role::Application::ToClass::apply_method_modifiers, avg 260µs/call # spent 421µs making 13 calls to Moose::Meta::Role::Application::ToRole::apply_method_modifiers, avg 32µs/call
922669µs263.50ms
# spent 3.60ms (95µs+3.50) within Moose::Meta::Role::Application::apply_around_method_modifiers which was called 26 times, avg 138µs/call: # 26 times (95µs+3.50ms) by Moose::Meta::Role::Application::apply at line 78, avg 138µs/call
sub apply_around_method_modifiers { (shift)->apply_method_modifiers('around' => @_) }
# spent 3.38ms making 13 calls to Moose::Meta::Role::Application::ToClass::apply_method_modifiers, avg 260µs/call # spent 126µs making 13 calls to Moose::Meta::Role::Application::ToRole::apply_method_modifiers, avg 10µs/call
932684µs265.06ms
# spent 5.16ms (99µs+5.06) within Moose::Meta::Role::Application::apply_after_method_modifiers which was called 26 times, avg 198µs/call: # 26 times (99µs+5.06ms) by Moose::Meta::Role::Application::apply at line 79, avg 198µs/call
sub apply_after_method_modifiers { (shift)->apply_method_modifiers('after' => @_) }
# spent 4.49ms making 13 calls to Moose::Meta::Role::Application::ToClass::apply_method_modifiers, avg 345µs/call # spent 573µs making 13 calls to Moose::Meta::Role::Application::ToRole::apply_method_modifiers, avg 44µs/call
94
95112µs1;
96
97__END__
98
99=pod
100
101=head1 NAME
102
103Moose::Meta::Role::Application - A base class for role application
104
105=head1 DESCRIPTION
106
107This is the abstract base class for role applications.
108
109The API for this class and its subclasses still needs some
110consideration, and is intentionally not yet documented.
111
112=head2 METHODS
113
114=over 4
115
116=item B<new>
117
118=item B<meta>
119
120=item B<get_method_exclusions>
121
122=item B<is_method_excluded>
123
124=item B<get_method_aliases>
125
126=item B<is_aliased_method>
127
128=item B<is_method_aliased>
129
130=item B<apply>
131
132=item B<check_role_exclusions>
133
134=item B<check_required_methods>
135
136=item B<check_required_attributes>
137
138=item B<apply_attributes>
139
140=item B<apply_methods>
141
142=item B<apply_method_modifiers>
143
144=item B<apply_before_method_modifiers>
145
146=item B<apply_after_method_modifiers>
147
148=item B<apply_around_method_modifiers>
149
150=item B<apply_override_method_modifiers>
151
152=back
153
154=head1 BUGS
155
156See L<Moose/BUGS> for details on reporting bugs.
157
158=head1 AUTHOR
159
160Stevan Little E<lt>stevan@iinteractive.comE<gt>
161
162=head1 COPYRIGHT AND LICENSE
163
164Copyright 2006-2010 by Infinity Interactive, Inc.
165
166L<http://www.iinteractive.com>
167
168This library is free software; you can redistribute it and/or modify
169it under the same terms as Perl itself.
170
171=cut
172