Filename | /usr/local/lib/perl/5.14.2/Class/MOP/Method/Accessor.pm |
Statements | Executed 6148 statements in 15.8ms |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
252 | 2 | 2 | 4.56ms | 92.8ms | new | Class::MOP::Method::Accessor::
309 | 3 | 3 | 3.12ms | 14.9ms | _new | Class::MOP::Method::Accessor::
252 | 1 | 1 | 2.13ms | 73.8ms | _initialize_body | Class::MOP::Method::Accessor::
83 | 2 | 2 | 847µs | 32.9ms | _generate_reader_method_inline | Class::MOP::Method::Accessor::
52 | 2 | 2 | 562µs | 31.7ms | _generate_accessor_method_inline | Class::MOP::Method::Accessor::
53 | 1 | 1 | 309µs | 357µs | _generate_reader_method | Class::MOP::Method::Accessor::
18 | 2 | 2 | 182µs | 3.73ms | _generate_predicate_method_inline | Class::MOP::Method::Accessor::
22 | 1 | 1 | 132µs | 154µs | _generate_accessor_method | Class::MOP::Method::Accessor::
16 | 1 | 1 | 82µs | 96µs | _generate_predicate_method | Class::MOP::Method::Accessor::
53 | 1 | 1 | 80µs | 80µs | _inline_throw_error | Class::MOP::Method::Accessor::
3 | 1 | 1 | 32µs | 570µs | _generate_writer_method_inline | Class::MOP::Method::Accessor::
2 | 1 | 1 | 27µs | 716µs | _generate_clearer_method_inline | Class::MOP::Method::Accessor::
3 | 1 | 1 | 17µs | 20µs | _generate_writer_method | Class::MOP::Method::Accessor::
1 | 1 | 1 | 8µs | 8µs | BEGIN@3 | Class::MOP::Method::Accessor::
1 | 1 | 1 | 8µs | 11µs | BEGIN@10 | Class::MOP::Method::Accessor::
1 | 1 | 1 | 7µs | 37µs | BEGIN@15 | Class::MOP::Method::Accessor::
1 | 1 | 1 | 7µs | 1.91ms | BEGIN@17 | Class::MOP::Method::Accessor::
1 | 1 | 1 | 7µs | 35µs | BEGIN@14 | Class::MOP::Method::Accessor::
1 | 1 | 1 | 6µs | 33µs | BEGIN@13 | Class::MOP::Method::Accessor::
1 | 1 | 1 | 6µs | 12µs | BEGIN@11 | Class::MOP::Method::Accessor::
0 | 0 | 0 | 0s | 0s | __ANON__[:104] | Class::MOP::Method::Accessor::
0 | 0 | 0 | 0s | 0s | __ANON__[:120] | Class::MOP::Method::Accessor::
0 | 0 | 0 | 0s | 0s | __ANON__[:123] | Class::MOP::Method::Accessor::
0 | 0 | 0 | 0s | 0s | __ANON__[:134] | Class::MOP::Method::Accessor::
0 | 0 | 0 | 0s | 0s | __ANON__[:154] | Class::MOP::Method::Accessor::
0 | 0 | 0 | 0s | 0s | __ANON__[:157] | Class::MOP::Method::Accessor::
0 | 0 | 0 | 0s | 0s | __ANON__[:171] | Class::MOP::Method::Accessor::
0 | 0 | 0 | 0s | 0s | __ANON__[:184] | Class::MOP::Method::Accessor::
0 | 0 | 0 | 0s | 0s | __ANON__[:187] | Class::MOP::Method::Accessor::
0 | 0 | 0 | 0s | 0s | __ANON__[:196] | Class::MOP::Method::Accessor::
0 | 0 | 0 | 0s | 0s | __ANON__[:209] | Class::MOP::Method::Accessor::
0 | 0 | 0 | 0s | 0s | __ANON__[:212] | Class::MOP::Method::Accessor::
0 | 0 | 0 | 0s | 0s | __ANON__[:221] | Class::MOP::Method::Accessor::
0 | 0 | 0 | 0s | 0s | __ANON__[:234] | Class::MOP::Method::Accessor::
0 | 0 | 0 | 0s | 0s | __ANON__[:237] | Class::MOP::Method::Accessor::
0 | 0 | 0 | 0s | 0s | _generate_clearer_method | Class::MOP::Method::Accessor::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | |||||
2 | package Class::MOP::Method::Accessor; | ||||
3 | # spent 8µs within Class::MOP::Method::Accessor::BEGIN@3 which was called:
# once (8µs+0s) by Class::MOP::Class::BEGIN@15 at line 5 | ||||
4 | 1 | 5µs | $Class::MOP::Method::Accessor::AUTHORITY = 'cpan:STEVAN'; | ||
5 | 1 | 30µs | 1 | 8µs | } # spent 8µs making 1 call to Class::MOP::Method::Accessor::BEGIN@3 |
6 | { | ||||
7 | 2 | 1µs | $Class::MOP::Method::Accessor::VERSION = '2.1005'; | ||
8 | } | ||||
9 | |||||
10 | 2 | 22µs | 2 | 14µs | # spent 11µs (8+3) within Class::MOP::Method::Accessor::BEGIN@10 which was called:
# once (8µs+3µs) by Class::MOP::Class::BEGIN@15 at line 10 # spent 11µs making 1 call to Class::MOP::Method::Accessor::BEGIN@10
# spent 3µs making 1 call to strict::import |
11 | 2 | 22µs | 2 | 17µs | # spent 12µs (6+5) within Class::MOP::Method::Accessor::BEGIN@11 which was called:
# once (6µs+5µs) by Class::MOP::Class::BEGIN@15 at line 11 # spent 12µs making 1 call to Class::MOP::Method::Accessor::BEGIN@11
# spent 5µs making 1 call to warnings::import |
12 | |||||
13 | 2 | 26µs | 2 | 59µs | # spent 33µs (6+26) within Class::MOP::Method::Accessor::BEGIN@13 which was called:
# once (6µs+26µs) by Class::MOP::Class::BEGIN@15 at line 13 # spent 33µs making 1 call to Class::MOP::Method::Accessor::BEGIN@13
# spent 26µs making 1 call to Exporter::import |
14 | 2 | 27µs | 2 | 64µs | # spent 35µs (7+28) within Class::MOP::Method::Accessor::BEGIN@14 which was called:
# once (7µs+28µs) by Class::MOP::Class::BEGIN@15 at line 14 # spent 35µs making 1 call to Class::MOP::Method::Accessor::BEGIN@14
# spent 28µs making 1 call to Exporter::import |
15 | 2 | 24µs | 2 | 67µs | # spent 37µs (7+30) within Class::MOP::Method::Accessor::BEGIN@15 which was called:
# once (7µs+30µs) by Class::MOP::Class::BEGIN@15 at line 15 # spent 37µs making 1 call to Class::MOP::Method::Accessor::BEGIN@15
# spent 30µs making 1 call to Exporter::import |
16 | |||||
17 | 2 | 946µs | 2 | 3.81ms | # spent 1.91ms (7µs+1.90) within Class::MOP::Method::Accessor::BEGIN@17 which was called:
# once (7µs+1.90ms) by Class::MOP::Class::BEGIN@15 at line 17 # spent 1.91ms making 1 call to Class::MOP::Method::Accessor::BEGIN@17
# spent 1.90ms making 1 call to base::import |
18 | |||||
19 | # spent 92.8ms (4.56+88.2) within Class::MOP::Method::Accessor::new which was called 252 times, avg 368µs/call:
# 188 times (3.25ms+26.7ms) by Class::MOP::Attribute::try {...} at line 389 of Class/MOP/Attribute.pm, avg 159µs/call
# 64 times (1.31ms+61.6ms) by Class::MOP::Attribute::try {...} at line 20 of Moose/Meta/Method/Accessor.pm, avg 982µs/call | ||||
20 | 252 | 85µs | my $class = shift; | ||
21 | 252 | 645µs | my %options = @_; | ||
22 | |||||
23 | 252 | 97µs | (exists $options{attribute}) | ||
24 | || confess "You must supply an attribute to construct with"; | ||||
25 | |||||
26 | 252 | 58µs | (exists $options{accessor_type}) | ||
27 | || confess "You must supply an accessor_type to construct with"; | ||||
28 | |||||
29 | 252 | 1.36ms | 504 | 404µs | (blessed($options{attribute}) && $options{attribute}->isa('Class::MOP::Attribute')) # spent 204µs making 252 calls to Scalar::Util::blessed, avg 811ns/call
# spent 200µs making 252 calls to UNIVERSAL::isa, avg 794ns/call |
30 | || confess "You must supply an attribute which is a 'Class::MOP::Attribute' instance"; | ||||
31 | |||||
32 | 252 | 85µs | ($options{package_name} && $options{name}) | ||
33 | || confess "You must supply the package_name and name parameters $Class::MOP::Method::UPGRADE_ERROR_TEXT"; | ||||
34 | |||||
35 | 252 | 359µs | 252 | 1.63ms | my $self = $class->_new(\%options); # spent 1.56ms making 188 calls to Class::MOP::Method::Accessor::_new, avg 8µs/call
# spent 66µs making 64 calls to Moose::Meta::Method::Accessor::_new, avg 1µs/call |
36 | |||||
37 | # we don't want this creating | ||||
38 | # a cycle in the code, if not | ||||
39 | # needed | ||||
40 | 252 | 763µs | 252 | 290µs | weaken($self->{'attribute'}); # spent 290µs making 252 calls to Scalar::Util::weaken, avg 1µs/call |
41 | |||||
42 | 252 | 851µs | 252 | 73.8ms | $self->_initialize_body; # spent 73.8ms making 252 calls to Class::MOP::Method::Accessor::_initialize_body, avg 293µs/call |
43 | |||||
44 | 252 | 649µs | return $self; | ||
45 | } | ||||
46 | |||||
47 | # spent 14.9ms (3.12+11.8) within Class::MOP::Method::Accessor::_new which was called 309 times, avg 48µs/call:
# 188 times (1.56ms+0s) by Class::MOP::Method::Accessor::new at line 35, avg 8µs/call
# 64 times (329µs+11.8ms) by Class::MOP::Method::Accessor::new at line 24 of Moose/Meta/Method/Accessor.pm, avg 190µs/call
# 57 times (1.23ms+0s) by Class::MOP::Method::wrap at line 46 of Class/MOP/Method.pm, avg 22µs/call | ||||
48 | 309 | 84µs | my $class = shift; | ||
49 | |||||
50 | 309 | 310µs | 128 | 11.8ms | return Class::MOP::Class->initialize($class)->new_object(@_) # spent 11.1ms making 64 calls to Class::MOP::Class::new_object, avg 173µs/call
# spent 749µs making 64 calls to Class::MOP::Class::initialize, avg 12µs/call |
51 | if $class ne __PACKAGE__; | ||||
52 | |||||
53 | 245 | 123µs | my $params = @_ == 1 ? $_[0] : {@_}; | ||
54 | |||||
55 | 245 | 2.77ms | return bless { | ||
56 | # inherited from Class::MOP::Method | ||||
57 | body => $params->{body}, | ||||
58 | associated_metaclass => $params->{associated_metaclass}, | ||||
59 | package_name => $params->{package_name}, | ||||
60 | name => $params->{name}, | ||||
61 | original_method => $params->{original_method}, | ||||
62 | |||||
63 | # inherit from Class::MOP::Generated | ||||
64 | is_inline => $params->{is_inline} || 0, | ||||
65 | definition_context => $params->{definition_context}, | ||||
66 | |||||
67 | # defined in this class | ||||
68 | attribute => $params->{attribute}, | ||||
69 | accessor_type => $params->{accessor_type}, | ||||
70 | } => $class; | ||||
71 | } | ||||
72 | |||||
73 | ## accessors | ||||
74 | |||||
75 | 440 | 925µs | sub associated_attribute { (shift)->{'attribute'} } | ||
76 | 252 | 502µs | sub accessor_type { (shift)->{'accessor_type'} } | ||
77 | |||||
78 | ## factory | ||||
79 | |||||
80 | # spent 73.8ms (2.13+71.7) within Class::MOP::Method::Accessor::_initialize_body which was called 252 times, avg 293µs/call:
# 252 times (2.13ms+71.7ms) by Class::MOP::Method::Accessor::new at line 42, avg 293µs/call | ||||
81 | 252 | 59µs | my $self = shift; | ||
82 | |||||
83 | 252 | 1.03ms | 504 | 446µs | my $method_name = join "_" => ( # spent 270µs making 252 calls to Class::MOP::Method::Accessor::accessor_type, avg 1µs/call
# spent 176µs making 252 calls to Class::MOP::Method::Generated::is_inline, avg 698ns/call |
84 | '_generate', | ||||
85 | $self->accessor_type, | ||||
86 | 'method', | ||||
87 | ($self->is_inline ? 'inline' : ()) | ||||
88 | ); | ||||
89 | |||||
90 | 252 | 918µs | 252 | 71.2ms | $self->{'body'} = $self->$method_name(); # spent 26.0ms making 30 calls to Moose::Meta::Method::Accessor::_generate_accessor_method, avg 868µs/call
# spent 20.4ms making 29 calls to Moose::Meta::Method::Accessor::_generate_reader_method, avg 703µs/call
# spent 12.9ms making 54 calls to Class::MOP::Method::Accessor::_generate_reader_method_inline, avg 240µs/call
# spent 6.09ms making 22 calls to Class::MOP::Method::Accessor::_generate_accessor_method_inline, avg 277µs/call
# spent 3.06ms making 16 calls to Class::MOP::Method::Accessor::_generate_predicate_method_inline, avg 191µs/call
# spent 754µs making 2 calls to Moose::Meta::Method::Accessor::_generate_clearer_method, avg 377µs/call
# spent 714µs making 2 calls to Moose::Meta::Method::Accessor::_generate_predicate_method, avg 357µs/call
# spent 570µs making 3 calls to Class::MOP::Method::Accessor::_generate_writer_method_inline, avg 190µs/call
# spent 357µs making 53 calls to Class::MOP::Method::Accessor::_generate_reader_method, avg 7µs/call
# spent 154µs making 22 calls to Class::MOP::Method::Accessor::_generate_accessor_method, avg 7µs/call
# spent 96µs making 16 calls to Class::MOP::Method::Accessor::_generate_predicate_method, avg 6µs/call
# spent 20µs making 3 calls to Class::MOP::Method::Accessor::_generate_writer_method, avg 6µs/call |
91 | } | ||||
92 | |||||
93 | ## generators | ||||
94 | |||||
95 | # spent 154µs (132+22) within Class::MOP::Method::Accessor::_generate_accessor_method which was called 22 times, avg 7µs/call:
# 22 times (132µs+22µs) by Class::MOP::Method::Accessor::_initialize_body at line 90, avg 7µs/call | ||||
96 | 22 | 4µs | my $self = shift; | ||
97 | 22 | 18µs | 22 | 22µs | my $attr = $self->associated_attribute; # spent 22µs making 22 calls to Class::MOP::Method::Accessor::associated_attribute, avg 1µs/call |
98 | |||||
99 | return sub { | ||||
100 | if (@_ >= 2) { | ||||
101 | $attr->set_value($_[0], $_[1]); | ||||
102 | } | ||||
103 | $attr->get_value($_[0]); | ||||
104 | 22 | 104µs | }; | ||
105 | } | ||||
106 | |||||
107 | # spent 31.7ms (562µs+31.1) within Class::MOP::Method::Accessor::_generate_accessor_method_inline which was called 52 times, avg 609µs/call:
# 30 times (318µs+25.3ms) by Moose::Meta::Method::Accessor::_generate_accessor_method at line 74 of Moose/Meta/Method/Accessor.pm, avg 852µs/call
# 22 times (244µs+5.84ms) by Class::MOP::Method::Accessor::_initialize_body at line 90, avg 277µs/call | ||||
108 | 52 | 14µs | my $self = shift; | ||
109 | 52 | 46µs | 52 | 45µs | my $attr = $self->associated_attribute; # spent 45µs making 52 calls to Class::MOP::Method::Accessor::associated_attribute, avg 873ns/call |
110 | |||||
111 | return try { | ||||
112 | 52 | 302µs | 156 | 29.4ms | $self->_compile_code([ # spent 12.0ms making 30 calls to Moose::Meta::Attribute::_inline_set_value, avg 400µs/call
# spent 11.1ms making 30 calls to Moose::Meta::Method::Accessor::_compile_code, avg 371µs/call
# spent 3.32ms making 22 calls to Class::MOP::Method::Generated::_compile_code, avg 151µs/call
# spent 1.48ms making 22 calls to Class::MOP::Attribute::_inline_set_value, avg 67µs/call
# spent 1.05ms making 30 calls to Moose::Meta::Attribute::_inline_get_value, avg 35µs/call
# spent 374µs making 22 calls to Class::MOP::Attribute::_inline_get_value, avg 17µs/call |
113 | 'sub {', | ||||
114 | 'if (@_ > 1) {', | ||||
115 | $attr->_inline_set_value('$_[0]', '$_[1]'), | ||||
116 | '}', | ||||
117 | $attr->_inline_get_value('$_[0]'), | ||||
118 | '}', | ||||
119 | ]); | ||||
120 | } | ||||
121 | catch { | ||||
122 | confess "Could not generate inline accessor because : $_"; | ||||
123 | 52 | 391µs | 104 | 149µs | }; # spent 149µs making 52 calls to Try::Tiny::catch, avg 3µs/call
# spent 30.9ms making 52 calls to Try::Tiny::try, avg 594µs/call, recursion: max depth 2, sum of overlapping time 30.9ms |
124 | } | ||||
125 | |||||
126 | # spent 357µs (309+48) within Class::MOP::Method::Accessor::_generate_reader_method which was called 53 times, avg 7µs/call:
# 53 times (309µs+48µs) by Class::MOP::Method::Accessor::_initialize_body at line 90, avg 7µs/call | ||||
127 | 53 | 12µs | my $self = shift; | ||
128 | 53 | 45µs | 53 | 48µs | my $attr = $self->associated_attribute; # spent 48µs making 53 calls to Class::MOP::Method::Accessor::associated_attribute, avg 908ns/call |
129 | |||||
130 | return sub { | ||||
131 | 12 | 4µs | confess "Cannot assign a value to a read-only accessor" | ||
132 | if @_ > 1; | ||||
133 | 12 | 35µs | 12 | 277µs | $attr->get_value($_[0]); # spent 277µs making 12 calls to Class::MOP::Attribute::get_value, avg 23µs/call |
134 | 53 | 255µs | }; | ||
135 | } | ||||
136 | |||||
137 | # spent 32.9ms (847µs+32.0) within Class::MOP::Method::Accessor::_generate_reader_method_inline which was called 83 times, avg 396µs/call:
# 54 times (533µs+12.4ms) by Class::MOP::Method::Accessor::_initialize_body at line 90, avg 240µs/call
# 29 times (314µs+19.6ms) by Moose::Meta::Method::Accessor::_generate_reader_method at line 62 of Moose/Meta/Method/Accessor.pm, avg 688µs/call | ||||
138 | 83 | 21µs | my $self = shift; | ||
139 | 83 | 69µs | 83 | 70µs | my $attr = $self->associated_attribute; # spent 70µs making 83 calls to Class::MOP::Method::Accessor::associated_attribute, avg 840ns/call |
140 | |||||
141 | return try { | ||||
142 | 83 | 507µs | 249 | 29.3ms | $self->_compile_code([ # spent 9.84ms making 30 calls to Moose::Meta::Method::Accessor::_compile_code, avg 328µs/call
# spent 7.73ms making 53 calls to Class::MOP::Method::Generated::_compile_code, avg 146µs/call
# spent 5.25ms making 30 calls to Moose::Meta::Attribute::_inline_get_value, avg 175µs/call
# spent 3.99ms making 30 calls to Moose::Meta::Method::_inline_throw_error, avg 133µs/call
# spent 2.45ms making 53 calls to Class::MOP::Attribute::_inline_get_value, avg 46µs/call
# spent 80µs making 53 calls to Class::MOP::Method::Accessor::_inline_throw_error, avg 2µs/call |
143 | 'sub {', | ||||
144 | 'if (@_ > 1) {', | ||||
145 | # XXX: this is a hack, but our error stuff is terrible | ||||
146 | $self->_inline_throw_error( | ||||
147 | '"Cannot assign a value to a read-only accessor"', | ||||
148 | 'data => \@_' | ||||
149 | ) . ';', | ||||
150 | '}', | ||||
151 | $attr->_inline_get_value('$_[0]'), | ||||
152 | '}', | ||||
153 | ]); | ||||
154 | } | ||||
155 | catch { | ||||
156 | confess "Could not generate inline reader because : $_"; | ||||
157 | 83 | 595µs | 166 | 227µs | }; # spent 227µs making 83 calls to Try::Tiny::catch, avg 3µs/call
# spent 31.7ms making 83 calls to Try::Tiny::try, avg 382µs/call, recursion: max depth 2, sum of overlapping time 31.7ms |
158 | } | ||||
159 | |||||
160 | # spent 80µs within Class::MOP::Method::Accessor::_inline_throw_error which was called 53 times, avg 2µs/call:
# 53 times (80µs+0s) by Class::MOP::Method::Accessor::try {...} at line 142, avg 2µs/call | ||||
161 | 53 | 14µs | my $self = shift; | ||
162 | 53 | 118µs | return 'Carp::confess ' . $_[0]; | ||
163 | } | ||||
164 | |||||
165 | # spent 20µs (17+3) within Class::MOP::Method::Accessor::_generate_writer_method which was called 3 times, avg 6µs/call:
# 3 times (17µs+3µs) by Class::MOP::Method::Accessor::_initialize_body at line 90, avg 6µs/call | ||||
166 | 3 | 800ns | my $self = shift; | ||
167 | 3 | 2µs | 3 | 3µs | my $attr = $self->associated_attribute; # spent 3µs making 3 calls to Class::MOP::Method::Accessor::associated_attribute, avg 900ns/call |
168 | |||||
169 | return sub { | ||||
170 | $attr->set_value($_[0], $_[1]); | ||||
171 | 3 | 12µs | }; | ||
172 | } | ||||
173 | |||||
174 | # spent 570µs (32+538) within Class::MOP::Method::Accessor::_generate_writer_method_inline which was called 3 times, avg 190µs/call:
# 3 times (32µs+538µs) by Class::MOP::Method::Accessor::_initialize_body at line 90, avg 190µs/call | ||||
175 | 3 | 700ns | my $self = shift; | ||
176 | 3 | 3µs | 3 | 3µs | my $attr = $self->associated_attribute; # spent 3µs making 3 calls to Class::MOP::Method::Accessor::associated_attribute, avg 867ns/call |
177 | |||||
178 | return try { | ||||
179 | 3 | 13µs | 6 | 454µs | $self->_compile_code([ # spent 394µs making 3 calls to Class::MOP::Method::Generated::_compile_code, avg 131µs/call
# spent 60µs making 3 calls to Class::MOP::Attribute::_inline_set_value, avg 20µs/call |
180 | 'sub {', | ||||
181 | $attr->_inline_set_value('$_[0]', '$_[1]'), | ||||
182 | '}', | ||||
183 | ]); | ||||
184 | } | ||||
185 | catch { | ||||
186 | confess "Could not generate inline writer because : $_"; | ||||
187 | 3 | 20µs | 6 | 8µs | }; # spent 8µs making 3 calls to Try::Tiny::catch, avg 3µs/call
# spent 527µs making 3 calls to Try::Tiny::try, avg 176µs/call, recursion: max depth 1, sum of overlapping time 527µs |
188 | } | ||||
189 | |||||
190 | # spent 96µs (82+14) within Class::MOP::Method::Accessor::_generate_predicate_method which was called 16 times, avg 6µs/call:
# 16 times (82µs+14µs) by Class::MOP::Method::Accessor::_initialize_body at line 90, avg 6µs/call | ||||
191 | 16 | 3µs | my $self = shift; | ||
192 | 16 | 13µs | 16 | 14µs | my $attr = $self->associated_attribute; # spent 14µs making 16 calls to Class::MOP::Method::Accessor::associated_attribute, avg 906ns/call |
193 | |||||
194 | return sub { | ||||
195 | 12 | 33µs | 12 | 248µs | $attr->has_value($_[0]) # spent 248µs making 12 calls to Class::MOP::Attribute::has_value, avg 21µs/call |
196 | 16 | 62µs | }; | ||
197 | } | ||||
198 | |||||
199 | # spent 3.73ms (182µs+3.55) within Class::MOP::Method::Accessor::_generate_predicate_method_inline which was called 18 times, avg 207µs/call:
# 16 times (160µs+2.90ms) by Class::MOP::Method::Accessor::_initialize_body at line 90, avg 191µs/call
# 2 times (22µs+646µs) by Moose::Meta::Method::Accessor::_generate_predicate_method at line 80 of Moose/Meta/Method/Accessor.pm, avg 334µs/call | ||||
200 | 18 | 4µs | my $self = shift; | ||
201 | 18 | 16µs | 18 | 17µs | my $attr = $self->associated_attribute; # spent 17µs making 18 calls to Class::MOP::Method::Accessor::associated_attribute, avg 928ns/call |
202 | |||||
203 | return try { | ||||
204 | 18 | 76µs | 36 | 3.05ms | $self->_compile_code([ # spent 2.14ms making 16 calls to Class::MOP::Method::Generated::_compile_code, avg 134µs/call
# spent 541µs making 2 calls to Moose::Meta::Method::Accessor::_compile_code, avg 270µs/call
# spent 364µs making 18 calls to Class::MOP::Attribute::_inline_has_value, avg 20µs/call |
205 | 'sub {', | ||||
206 | $attr->_inline_has_value('$_[0]'), | ||||
207 | '}', | ||||
208 | ]); | ||||
209 | } | ||||
210 | catch { | ||||
211 | confess "Could not generate inline predicate because : $_"; | ||||
212 | 18 | 121µs | 36 | 46µs | }; # spent 46µs making 18 calls to Try::Tiny::catch, avg 3µs/call
# spent 3.48ms making 18 calls to Try::Tiny::try, avg 194µs/call, recursion: max depth 2, sum of overlapping time 3.48ms |
213 | } | ||||
214 | |||||
215 | sub _generate_clearer_method { | ||||
216 | my $self = shift; | ||||
217 | my $attr = $self->associated_attribute; | ||||
218 | |||||
219 | return sub { | ||||
220 | $attr->clear_value($_[0]) | ||||
221 | }; | ||||
222 | } | ||||
223 | |||||
224 | # spent 716µs (27+688) within Class::MOP::Method::Accessor::_generate_clearer_method_inline which was called 2 times, avg 358µs/call:
# 2 times (27µs+688µs) by Moose::Meta::Method::Accessor::_generate_clearer_method at line 86 of Moose/Meta/Method/Accessor.pm, avg 358µs/call | ||||
225 | 2 | 800ns | my $self = shift; | ||
226 | 2 | 3µs | 2 | 2µs | my $attr = $self->associated_attribute; # spent 2µs making 2 calls to Class::MOP::Method::Accessor::associated_attribute, avg 900ns/call |
227 | |||||
228 | return try { | ||||
229 | 2 | 18µs | 4 | 614µs | $self->_compile_code([ # spent 558µs making 2 calls to Moose::Meta::Method::Accessor::_compile_code, avg 279µs/call
# spent 57µs making 2 calls to Class::MOP::Attribute::_inline_clear_value, avg 28µs/call |
230 | 'sub {', | ||||
231 | $attr->_inline_clear_value('$_[0]'), | ||||
232 | '}', | ||||
233 | ]); | ||||
234 | } | ||||
235 | catch { | ||||
236 | confess "Could not generate inline clearer because : $_"; | ||||
237 | 2 | 17µs | 4 | 6µs | }; # spent 6µs making 2 calls to Try::Tiny::catch, avg 3µs/call
# spent 681µs making 2 calls to Try::Tiny::try, avg 340µs/call, recursion: max depth 2, sum of overlapping time 681µs |
238 | } | ||||
239 | |||||
240 | 1 | 3µs | 1; | ||
241 | |||||
242 | # ABSTRACT: Method Meta Object for accessors | ||||
243 | |||||
244 | __END__ |