← 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:23:08 2010

File /usr/local/lib/perl5/site_perl/5.10.1/MooseX/AttributeHelpers/MethodProvider/ImmutableHash.pm
Statements Executed 18
Statement Execution Time 521µs
Subroutines — ordered by exclusive time
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
21124µs38µsMooseX::AttributeHelpers::MethodProvider::ImmutableHash::::getMooseX::AttributeHelpers::MethodProvider::ImmutableHash::get
21121µs34µsMooseX::AttributeHelpers::MethodProvider::ImmutableHash::::existsMooseX::AttributeHelpers::MethodProvider::ImmutableHash::exists
11114µs1.41msMooseX::AttributeHelpers::MethodProvider::ImmutableHash::::BEGIN@2MooseX::AttributeHelpers::MethodProvider::ImmutableHash::BEGIN@2
11113µs23µsMooseX::AttributeHelpers::MethodProvider::ImmutableHash::::keysMooseX::AttributeHelpers::MethodProvider::ImmutableHash::keys
0000s0sMooseX::AttributeHelpers::MethodProvider::ImmutableHash::::__ANON__[:10]MooseX::AttributeHelpers::MethodProvider::ImmutableHash::__ANON__[:10]
0000s0sMooseX::AttributeHelpers::MethodProvider::ImmutableHash::::__ANON__[:15]MooseX::AttributeHelpers::MethodProvider::ImmutableHash::__ANON__[:15]
0000s0sMooseX::AttributeHelpers::MethodProvider::ImmutableHash::::__ANON__[:27]MooseX::AttributeHelpers::MethodProvider::ImmutableHash::__ANON__[:27]
0000s0sMooseX::AttributeHelpers::MethodProvider::ImmutableHash::::__ANON__[:32]MooseX::AttributeHelpers::MethodProvider::ImmutableHash::__ANON__[:32]
0000s0sMooseX::AttributeHelpers::MethodProvider::ImmutableHash::::__ANON__[:37]MooseX::AttributeHelpers::MethodProvider::ImmutableHash::__ANON__[:37]
0000s0sMooseX::AttributeHelpers::MethodProvider::ImmutableHash::::__ANON__[:47]MooseX::AttributeHelpers::MethodProvider::ImmutableHash::__ANON__[:47]
0000s0sMooseX::AttributeHelpers::MethodProvider::ImmutableHash::::__ANON__[:57]MooseX::AttributeHelpers::MethodProvider::ImmutableHash::__ANON__[:57]
0000s0sMooseX::AttributeHelpers::MethodProvider::ImmutableHash::::__ANON__[:62]MooseX::AttributeHelpers::MethodProvider::ImmutableHash::__ANON__[:62]
0000s0sMooseX::AttributeHelpers::MethodProvider::ImmutableHash::::__ANON__[:67]MooseX::AttributeHelpers::MethodProvider::ImmutableHash::__ANON__[:67]
0000s0sMooseX::AttributeHelpers::MethodProvider::ImmutableHash::::countMooseX::AttributeHelpers::MethodProvider::ImmutableHash::count
0000s0sMooseX::AttributeHelpers::MethodProvider::ImmutableHash::::definedMooseX::AttributeHelpers::MethodProvider::ImmutableHash::defined
0000s0sMooseX::AttributeHelpers::MethodProvider::ImmutableHash::::elementsMooseX::AttributeHelpers::MethodProvider::ImmutableHash::elements
0000s0sMooseX::AttributeHelpers::MethodProvider::ImmutableHash::::emptyMooseX::AttributeHelpers::MethodProvider::ImmutableHash::empty
0000s0sMooseX::AttributeHelpers::MethodProvider::ImmutableHash::::kvMooseX::AttributeHelpers::MethodProvider::ImmutableHash::kv
0000s0sMooseX::AttributeHelpers::MethodProvider::ImmutableHash::::valuesMooseX::AttributeHelpers::MethodProvider::ImmutableHash::values
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package MooseX::AttributeHelpers::MethodProvider::ImmutableHash;
23444µs22.81ms
# spent 1.41ms (14µs+1.40) within MooseX::AttributeHelpers::MethodProvider::ImmutableHash::BEGIN@2 which was called # once (14µs+1.40ms) by Class::MOP::__ANON__[/usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Class/MOP.pm:103] at line 2
use Moose::Role;
3
41600nsour $VERSION = '0.23';
5114µs$VERSION = eval $VERSION;
61300nsour $AUTHORITY = 'cpan:STEVAN';
7
8
# spent 34µs (21+13) within MooseX::AttributeHelpers::MethodProvider::ImmutableHash::exists which was called 2 times, avg 17µs/call: # 2 times (21µs+13µs) by Class::MOP::Class:::after at line 181 of MooseX/AttributeHelpers/Trait/Base.pm, avg 17µs/call
sub exists : method {
922µs my ($attr, $reader, $writer) = @_;
10327µs348µs return sub { CORE::exists $reader->($_[0])->{$_[1]} ? 1 : 0 };
# spent 33µs making 1 call to Class::MOP::Class::__ANON__::SERIAL::1::get_class_attribute_map # spent 15µs making 2 calls to Class::MOP::Method::__ANON__[Class/MOP/Method.pm:19], avg 8µs/call
11}
12
13sub defined : method {
14 my ($attr, $reader, $writer) = @_;
15 return sub { CORE::defined $reader->($_[0])->{$_[1]} ? 1 : 0 };
16}
17
18
# spent 38µs (24+14) within MooseX::AttributeHelpers::MethodProvider::ImmutableHash::get which was called 2 times, avg 19µs/call: # 2 times (24µs+14µs) by Class::MOP::Class:::after at line 181 of MooseX/AttributeHelpers/Trait/Base.pm, avg 19µs/call
sub get : method {
1922µs my ($attr, $reader, $writer) = @_;
20 return sub {
21 if ( @_ == 2 ) {
22 $reader->($_[0])->{$_[1]}
23 } else {
24 my ( $self, @keys ) = @_;
25 @{ $reader->($self) }{@keys}
26 }
27214µs };
28}
29
30
# spent 23µs (13+9) within MooseX::AttributeHelpers::MethodProvider::ImmutableHash::keys which was called # once (13µs+9µs) by Class::MOP::Class:::after at line 181 of MooseX/AttributeHelpers/Trait/Base.pm
sub keys : method {
311900ns my ($attr, $reader, $writer) = @_;
3217µs return sub { CORE::keys %{$reader->($_[0])} };
33}
34
35sub values : method {
36 my ($attr, $reader, $writer) = @_;
37 return sub { CORE::values %{$reader->($_[0])} };
38}
39
40sub kv : method {
41 my ($attr, $reader, $writer) = @_;
42 return sub {
43 my $h = $reader->($_[0]);
44 map {
45 [ $_, $h->{$_} ]
46 } CORE::keys %{$h}
47 };
48}
49
50sub elements : method {
51 my ($attr, $reader, $writer) = @_;
52 return sub {
53 my $h = $reader->($_[0]);
54 map {
55 $_, $h->{$_}
56 } CORE::keys %{$h}
57 };
58}
59
60sub count : method {
61 my ($attr, $reader, $writer) = @_;
62 return sub { scalar CORE::keys %{$reader->($_[0])} };
63}
64
65sub empty : method {
66 my ($attr, $reader, $writer) = @_;
67 return sub { scalar CORE::keys %{$reader->($_[0])} ? 1 : 0 };
68}
69
70110µs1;
71
72__END__
73
74=pod
75
76=head1 NAME
77
78MooseX::AttributeHelpers::MethodProvider::ImmutableHash
79
80=head1 DESCRIPTION
81
82This is a role which provides the method generators for
83L<MooseX::AttributeHelpers::Collection::ImmutableHash>.
84
85=head1 METHODS
86
87=over 4
88
89=item B<meta>
90
91=back
92
93=head1 PROVIDED METHODS
94
95=over 4
96
97=item B<count>
98
99Returns the number of elements in the list.
100
101=item B<empty>
102
103If the list is populated, returns true. Otherwise, returns false.
104
105=item B<exists>
106
107Returns true if the given key is present in the hash
108
109=item B<defined>
110
111Returns true if the value of a given key is defined
112
113=item B<get>
114
115Returns an element of the hash by its key.
116
117=item B<keys>
118
119Returns the list of keys in the hash.
120
121=item B<values>
122
123Returns the list of values in the hash.
124
125=item B<kv>
126
127Returns the key, value pairs in the hash as array references
128
129=item B<elements>
130
131Returns the key, value pairs in the hash as a flattened list
132
133=back
134
135=head1 BUGS
136
137All complex software has bugs lurking in it, and this module is no
138exception. If you find a bug please either email me, or add the bug
139to cpan-RT.
140
141=head1 AUTHOR
142
143Stevan Little E<lt>stevan@iinteractive.comE<gt>
144
145=head1 COPYRIGHT AND LICENSE
146
147Copyright 2007-2009 by Infinity Interactive, Inc.
148
149L<http://www.iinteractive.com>
150
151This library is free software; you can redistribute it and/or modify
152it under the same terms as Perl itself.
153
154=cut
155