Filename | /usr/local/lib/perl/5.14.2/Moose/Meta/Method/Accessor.pm |
Statements | Executed 836 statements in 3.08ms |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
64 | 4 | 1 | 619µs | 22.8ms | _compile_code | Moose::Meta::Method::Accessor::
63 | 4 | 1 | 501µs | 692µs | _instance_is_inlinable | Moose::Meta::Method::Accessor::
64 | 1 | 1 | 304µs | 4.30ms | _eval_environment | Moose::Meta::Method::Accessor::
30 | 1 | 1 | 150µs | 216µs | _error_thrower | Moose::Meta::Method::Accessor::
29 | 1 | 1 | 149µs | 21.0ms | _generate_reader_method | Moose::Meta::Method::Accessor::
30 | 1 | 1 | 146µs | 26.8ms | _generate_accessor_method | Moose::Meta::Method::Accessor::
64 | 1 | 1 | 118µs | 118µs | new | Moose::Meta::Method::Accessor::
64 | 1 | 1 | 69µs | 69µs | _new | Moose::Meta::Method::Accessor::
2 | 1 | 1 | 26µs | 722µs | _generate_predicate_method | Moose::Meta::Method::Accessor::
2 | 1 | 1 | 22µs | 806µs | _generate_clearer_method | Moose::Meta::Method::Accessor::
1 | 1 | 1 | 10µs | 10µs | BEGIN@3 | Moose::Meta::Method::Accessor::
1 | 1 | 1 | 8µs | 11µs | BEGIN@10 | Moose::Meta::Method::Accessor::
1 | 1 | 1 | 8µs | 13µs | BEGIN@11 | Moose::Meta::Method::Accessor::
1 | 1 | 1 | 7µs | 74µs | BEGIN@15 | Moose::Meta::Method::Accessor::
1 | 1 | 1 | 7µs | 39µs | BEGIN@13 | Moose::Meta::Method::Accessor::
0 | 0 | 0 | 0s | 0s | __ANON__[:39] | Moose::Meta::Method::Accessor::
0 | 0 | 0 | 0s | 0s | __ANON__[:47] | Moose::Meta::Method::Accessor::
0 | 0 | 0 | 0s | 0s | _generate_writer_method | Moose::Meta::Method::Accessor::
0 | 0 | 0 | 0s | 0s | _get_value | Moose::Meta::Method::Accessor::
0 | 0 | 0 | 0s | 0s | _has_value | Moose::Meta::Method::Accessor::
0 | 0 | 0 | 0s | 0s | _inline_check_coercion | Moose::Meta::Method::Accessor::
0 | 0 | 0 | 0s | 0s | _inline_check_constraint | Moose::Meta::Method::Accessor::
0 | 0 | 0 | 0s | 0s | _inline_check_lazy | Moose::Meta::Method::Accessor::
0 | 0 | 0 | 0s | 0s | _inline_get_old_value_for_trigger | Moose::Meta::Method::Accessor::
0 | 0 | 0 | 0s | 0s | _inline_store_value | Moose::Meta::Method::Accessor::
0 | 0 | 0 | 0s | 0s | _inline_tc_code | Moose::Meta::Method::Accessor::
0 | 0 | 0 | 0s | 0s | _inline_trigger | Moose::Meta::Method::Accessor::
0 | 0 | 0 | 0s | 0s | _writer_value_needs_copy | Moose::Meta::Method::Accessor::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | |||||
2 | package Moose::Meta::Method::Accessor; | ||||
3 | # spent 10µs within Moose::Meta::Method::Accessor::BEGIN@3 which was called:
# once (10µs+0s) by Moose::Meta::Attribute::BEGIN@21 at line 5 | ||||
4 | 1 | 5µs | $Moose::Meta::Method::Accessor::AUTHORITY = 'cpan:STEVAN'; | ||
5 | 1 | 30µs | 1 | 10µs | } # spent 10µs making 1 call to Moose::Meta::Method::Accessor::BEGIN@3 |
6 | { | ||||
7 | 2 | 1µs | $Moose::Meta::Method::Accessor::VERSION = '2.1005'; | ||
8 | } | ||||
9 | |||||
10 | 2 | 28µs | 2 | 14µs | # spent 11µs (8+3) within Moose::Meta::Method::Accessor::BEGIN@10 which was called:
# once (8µs+3µs) by Moose::Meta::Attribute::BEGIN@21 at line 10 # spent 11µs making 1 call to Moose::Meta::Method::Accessor::BEGIN@10
# spent 3µs making 1 call to strict::import |
11 | 2 | 21µs | 2 | 18µs | # spent 13µs (8+5) within Moose::Meta::Method::Accessor::BEGIN@11 which was called:
# once (8µs+5µs) by Moose::Meta::Attribute::BEGIN@21 at line 11 # spent 13µs making 1 call to Moose::Meta::Method::Accessor::BEGIN@11
# spent 5µs making 1 call to warnings::import |
12 | |||||
13 | 2 | 27µs | 2 | 71µs | # spent 39µs (7+32) within Moose::Meta::Method::Accessor::BEGIN@13 which was called:
# once (7µs+32µs) by Moose::Meta::Attribute::BEGIN@21 at line 13 # spent 39µs making 1 call to Moose::Meta::Method::Accessor::BEGIN@13
# spent 32µs making 1 call to Exporter::import |
14 | |||||
15 | 1 | 67µs | # spent 74µs (7+67) within Moose::Meta::Method::Accessor::BEGIN@15 which was called:
# once (7µs+67µs) by Moose::Meta::Attribute::BEGIN@21 at line 16 # spent 67µs making 1 call to base::import | ||
16 | 2 | 535µs | 1 | 74µs | 'Class::MOP::Method::Accessor'; # spent 74µs making 1 call to Moose::Meta::Method::Accessor::BEGIN@15 |
17 | |||||
18 | # multiple inheritance is terrible | ||||
19 | # spent 118µs within Moose::Meta::Method::Accessor::new which was called 64 times, avg 2µs/call:
# 64 times (118µs+0s) by Class::MOP::Attribute::try {...} at line 389 of Class/MOP/Attribute.pm, avg 2µs/call | ||||
20 | 64 | 218µs | 64 | 64.6ms | goto &Class::MOP::Method::Accessor::new; # spent 64.6ms making 64 calls to Class::MOP::Method::Accessor::new, avg 1.01ms/call |
21 | } | ||||
22 | |||||
23 | # spent 69µs within Moose::Meta::Method::Accessor::_new which was called 64 times, avg 1µs/call:
# 64 times (69µs+0s) by Class::MOP::Method::Accessor::new at line 35 of Class/MOP/Method/Accessor.pm, avg 1µs/call | ||||
24 | 64 | 183µs | 64 | 12.4ms | goto &Class::MOP::Method::Accessor::_new; # spent 12.4ms making 64 calls to Class::MOP::Method::Accessor::_new, avg 193µs/call |
25 | } | ||||
26 | |||||
27 | # spent 216µs (150+67) within Moose::Meta::Method::Accessor::_error_thrower which was called 30 times, avg 7µs/call:
# 30 times (150µs+67µs) by Moose::Meta::Method::_inline_throw_error at line 37 of Moose/Meta/Method.pm, avg 7µs/call | ||||
28 | 60 | 113µs | my $self = shift; | ||
29 | 60 | 67µs | return $self->associated_attribute # spent 67µs making 60 calls to Class::MOP::Method::Accessor::associated_attribute, avg 1µs/call | ||
30 | if ref($self) && defined($self->associated_attribute); | ||||
31 | return $self->SUPER::_error_thrower; | ||||
32 | } | ||||
33 | |||||
34 | # spent 22.8ms (619µs+22.2) within Moose::Meta::Method::Accessor::_compile_code which was called 64 times, avg 357µs/call:
# 30 times (292µs+11.3ms) by Class::MOP::Method::Accessor::try {...} at line 112 of Class/MOP/Method/Accessor.pm, avg 386µs/call
# 30 times (293µs+9.82ms) by Class::MOP::Method::Accessor::try {...} at line 142 of Class/MOP/Method/Accessor.pm, avg 337µs/call
# 2 times (18µs+575µs) by Class::MOP::Method::Accessor::try {...} at line 229 of Class/MOP/Method/Accessor.pm, avg 296µs/call
# 2 times (17µs+522µs) by Class::MOP::Method::Accessor::try {...} at line 204 of Class/MOP/Method/Accessor.pm, avg 270µs/call | ||||
35 | 192 | 551µs | my $self = shift; | ||
36 | my @args = @_; | ||||
37 | try { | ||||
38 | 64 | 321µs | 64 | 20.3ms | $self->SUPER::_compile_code(@args); # spent 20.3ms making 64 calls to Class::MOP::Method::Generated::_compile_code, avg 318µs/call |
39 | } | ||||
40 | catch { | ||||
41 | $self->throw_error( | ||||
42 | 'Could not create writer for ' | ||||
43 | . "'" . $self->associated_attribute->name . "' " | ||||
44 | . 'because ' . $_, | ||||
45 | error => $_, | ||||
46 | ); | ||||
47 | 128 | 182µs | }; # spent 182µs making 64 calls to Try::Tiny::catch, avg 3µs/call
# spent 22.0ms making 64 calls to Try::Tiny::try, avg 344µs/call, recursion: max depth 3, sum of overlapping time 22.0ms | ||
48 | } | ||||
49 | |||||
50 | # spent 4.30ms (304µs+4.00) within Moose::Meta::Method::Accessor::_eval_environment which was called 64 times, avg 67µs/call:
# 64 times (304µs+4.00ms) by Class::MOP::Method::Generated::_compile_code at line 59 of Class/MOP/Method/Generated.pm, avg 67µs/call | ||||
51 | 128 | 231µs | my $self = shift; | ||
52 | 128 | 4.00ms | return $self->associated_attribute->_eval_environment; # spent 3.91ms making 64 calls to Moose::Meta::Attribute::_eval_environment, avg 61µs/call
# spent 84µs making 64 calls to Class::MOP::Method::Accessor::associated_attribute, avg 1µs/call | ||
53 | } | ||||
54 | |||||
55 | # spent 692µs (501+192) within Moose::Meta::Method::Accessor::_instance_is_inlinable which was called 63 times, avg 11µs/call:
# 30 times (237µs+90µs) by Moose::Meta::Method::Accessor::_generate_accessor_method at line 74, avg 11µs/call
# 29 times (233µs+90µs) by Moose::Meta::Method::Accessor::_generate_reader_method at line 62, avg 11µs/call
# 2 times (16µs+6µs) by Moose::Meta::Method::Accessor::_generate_clearer_method at line 86, avg 11µs/call
# 2 times (15µs+6µs) by Moose::Meta::Method::Accessor::_generate_predicate_method at line 80, avg 11µs/call | ||||
56 | 126 | 534µs | my $self = shift; | ||
57 | 252 | 192µs | return $self->associated_attribute->associated_class->instance_metaclass->is_inlinable; # spent 60µs making 63 calls to Class::MOP::Method::Accessor::associated_attribute, avg 948ns/call
# spent 49µs making 63 calls to Class::MOP::Instance::is_inlinable, avg 779ns/call
# spent 42µs making 63 calls to Class::MOP::Class::instance_metaclass, avg 660ns/call
# spent 41µs making 63 calls to Class::MOP::Attribute::associated_class, avg 657ns/call | ||
58 | } | ||||
59 | |||||
60 | # spent 21.0ms (149µs+20.8) within Moose::Meta::Method::Accessor::_generate_reader_method which was called 29 times, avg 724µs/call:
# 29 times (149µs+20.8ms) by Class::MOP::Method::Accessor::_initialize_body at line 90 of Class/MOP/Method/Accessor.pm, avg 724µs/call | ||||
61 | 58 | 119µs | my $self = shift; | ||
62 | 58 | 20.8ms | $self->_instance_is_inlinable ? $self->_generate_reader_method_inline(@_) # spent 20.5ms making 29 calls to Class::MOP::Method::Accessor::_generate_reader_method_inline, avg 708µs/call
# spent 322µs making 29 calls to Moose::Meta::Method::Accessor::_instance_is_inlinable, avg 11µs/call | ||
63 | : $self->SUPER::_generate_reader_method(@_); | ||||
64 | } | ||||
65 | |||||
66 | sub _generate_writer_method { | ||||
67 | my $self = shift; | ||||
68 | $self->_instance_is_inlinable ? $self->_generate_writer_method_inline(@_) | ||||
69 | : $self->SUPER::_generate_writer_method(@_); | ||||
70 | } | ||||
71 | |||||
72 | # spent 26.8ms (146µs+26.7) within Moose::Meta::Method::Accessor::_generate_accessor_method which was called 30 times, avg 893µs/call:
# 30 times (146µs+26.7ms) by Class::MOP::Method::Accessor::_initialize_body at line 90 of Class/MOP/Method/Accessor.pm, avg 893µs/call | ||||
73 | 60 | 130µs | my $self = shift; | ||
74 | 60 | 26.7ms | $self->_instance_is_inlinable ? $self->_generate_accessor_method_inline(@_) # spent 26.3ms making 30 calls to Class::MOP::Method::Accessor::_generate_accessor_method_inline, avg 878µs/call
# spent 327µs making 30 calls to Moose::Meta::Method::Accessor::_instance_is_inlinable, avg 11µs/call | ||
75 | : $self->SUPER::_generate_accessor_method(@_); | ||||
76 | } | ||||
77 | |||||
78 | # spent 722µs (26+696) within Moose::Meta::Method::Accessor::_generate_predicate_method which was called 2 times, avg 361µs/call:
# 2 times (26µs+696µs) by Class::MOP::Method::Accessor::_initialize_body at line 90 of Class/MOP/Method/Accessor.pm, avg 361µs/call | ||||
79 | 4 | 17µs | my $self = shift; | ||
80 | 4 | 696µs | $self->_instance_is_inlinable ? $self->_generate_predicate_method_inline(@_) # spent 675µs making 2 calls to Class::MOP::Method::Accessor::_generate_predicate_method_inline, avg 337µs/call
# spent 21µs making 2 calls to Moose::Meta::Method::Accessor::_instance_is_inlinable, avg 11µs/call | ||
81 | : $self->SUPER::_generate_predicate_method(@_); | ||||
82 | } | ||||
83 | |||||
84 | # spent 806µs (22+784) within Moose::Meta::Method::Accessor::_generate_clearer_method which was called 2 times, avg 403µs/call:
# 2 times (22µs+784µs) by Class::MOP::Method::Accessor::_initialize_body at line 90 of Class/MOP/Method/Accessor.pm, avg 403µs/call | ||||
85 | 4 | 16µs | my $self = shift; | ||
86 | 4 | 784µs | $self->_instance_is_inlinable ? $self->_generate_clearer_method_inline(@_) # spent 763µs making 2 calls to Class::MOP::Method::Accessor::_generate_clearer_method_inline, avg 381µs/call
# spent 22µs making 2 calls to Moose::Meta::Method::Accessor::_instance_is_inlinable, avg 11µs/call | ||
87 | : $self->SUPER::_generate_clearer_method(@_); | ||||
88 | } | ||||
89 | |||||
90 | sub _writer_value_needs_copy { | ||||
91 | shift->associated_attribute->_writer_value_needs_copy(@_); | ||||
92 | } | ||||
93 | |||||
94 | sub _inline_tc_code { | ||||
95 | shift->associated_attribute->_inline_tc_code(@_); | ||||
96 | } | ||||
97 | |||||
98 | sub _inline_check_coercion { | ||||
99 | shift->associated_attribute->_inline_check_coercion(@_); | ||||
100 | } | ||||
101 | |||||
102 | sub _inline_check_constraint { | ||||
103 | shift->associated_attribute->_inline_check_constraint(@_); | ||||
104 | } | ||||
105 | |||||
106 | sub _inline_check_lazy { | ||||
107 | shift->associated_attribute->_inline_check_lazy(@_); | ||||
108 | } | ||||
109 | |||||
110 | sub _inline_store_value { | ||||
111 | shift->associated_attribute->_inline_instance_set(@_) . ';'; | ||||
112 | } | ||||
113 | |||||
114 | sub _inline_get_old_value_for_trigger { | ||||
115 | shift->associated_attribute->_inline_get_old_value_for_trigger(@_); | ||||
116 | } | ||||
117 | |||||
118 | sub _inline_trigger { | ||||
119 | shift->associated_attribute->_inline_trigger(@_); | ||||
120 | } | ||||
121 | |||||
122 | sub _get_value { | ||||
123 | shift->associated_attribute->_inline_instance_get(@_); | ||||
124 | } | ||||
125 | |||||
126 | sub _has_value { | ||||
127 | shift->associated_attribute->_inline_instance_has(@_); | ||||
128 | } | ||||
129 | |||||
130 | 1 | 3µs | 1; | ||
131 | |||||
132 | # ABSTRACT: A Moose Method metaclass for accessors | ||||
133 | |||||
134 | __END__ |