| Filename | /Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Meta/Method/Accessor.pm |
| Statements | Executed 2492 statements in 9.30ms |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 206 | 4 | 1 | 2.25ms | 3.04ms | Moose::Meta::Method::Accessor::_instance_is_inlinable |
| 207 | 4 | 1 | 2.01ms | 90.9ms | Moose::Meta::Method::Accessor::_compile_code |
| 207 | 1 | 1 | 1.21ms | 18.4ms | Moose::Meta::Method::Accessor::_eval_environment |
| 140 | 1 | 1 | 902µs | 111ms | Moose::Meta::Method::Accessor::_generate_reader_method |
| 207 | 1 | 1 | 447µs | 447µs | Moose::Meta::Method::Accessor::new |
| 50 | 1 | 1 | 403µs | 52.3ms | Moose::Meta::Method::Accessor::_generate_accessor_method |
| 207 | 1 | 1 | 303µs | 303µs | Moose::Meta::Method::Accessor::_new |
| 8 | 1 | 1 | 70µs | 2.87ms | Moose::Meta::Method::Accessor::_generate_predicate_method |
| 8 | 1 | 1 | 69µs | 3.10ms | Moose::Meta::Method::Accessor::_generate_clearer_method |
| 1 | 1 | 1 | 13µs | 26µs | Moose::Meta::Method::Accessor::BEGIN@4 |
| 1 | 1 | 1 | 10µs | 206µs | Moose::Meta::Method::Accessor::BEGIN@12 |
| 1 | 1 | 1 | 9µs | 55µs | Moose::Meta::Method::Accessor::BEGIN@9 |
| 1 | 1 | 1 | 8µs | 13µs | Moose::Meta::Method::Accessor::BEGIN@5 |
| 1 | 1 | 1 | 8µs | 41µs | Moose::Meta::Method::Accessor::BEGIN@7 |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::__ANON__[:35] |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::__ANON__[:41] |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::_error_thrower |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::_generate_writer_method |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::_get_value |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::_has_value |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::_inline_check_coercion |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::_inline_check_constraint |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::_inline_check_lazy |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::_inline_get_old_value_for_trigger |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::_inline_store_value |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::_inline_tc_code |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::_inline_trigger |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::_writer_value_needs_copy |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | package Moose::Meta::Method::Accessor; | ||||
| 2 | 1 | 700ns | our $VERSION = '2.1403'; | ||
| 3 | |||||
| 4 | 2 | 22µs | 2 | 40µs | # spent 26µs (13+13) within Moose::Meta::Method::Accessor::BEGIN@4 which was called:
# once (13µs+13µs) by Moose::Meta::Attribute::BEGIN@13 at line 4 # spent 26µs making 1 call to Moose::Meta::Method::Accessor::BEGIN@4
# spent 13µs making 1 call to strict::import |
| 5 | 2 | 21µs | 2 | 19µs | # spent 13µs (8+6) within Moose::Meta::Method::Accessor::BEGIN@5 which was called:
# once (8µs+6µs) by Moose::Meta::Attribute::BEGIN@13 at line 5 # spent 13µs making 1 call to Moose::Meta::Method::Accessor::BEGIN@5
# spent 6µs making 1 call to warnings::import |
| 6 | |||||
| 7 | 2 | 25µs | 2 | 74µs | # spent 41µs (8+33) within Moose::Meta::Method::Accessor::BEGIN@7 which was called:
# once (8µs+33µs) by Moose::Meta::Attribute::BEGIN@13 at line 7 # spent 41µs making 1 call to Moose::Meta::Method::Accessor::BEGIN@7
# spent 33µs making 1 call to Exporter::import |
| 8 | |||||
| 9 | 1 | 500ns | # spent 55µs (9+47) within Moose::Meta::Method::Accessor::BEGIN@9 which was called:
# once (9µs+47µs) by Moose::Meta::Attribute::BEGIN@13 at line 10 | ||
| 10 | 1 | 29µs | 2 | 102µs | 'Class::MOP::Method::Accessor'; # spent 55µs making 1 call to Moose::Meta::Method::Accessor::BEGIN@9
# spent 47µs making 1 call to parent::import |
| 11 | |||||
| 12 | 2 | 560µs | 2 | 401µs | # spent 206µs (10+196) within Moose::Meta::Method::Accessor::BEGIN@12 which was called:
# once (10µs+196µs) by Moose::Meta::Attribute::BEGIN@13 at line 12 # spent 206µs making 1 call to Moose::Meta::Method::Accessor::BEGIN@12
# spent 196µs making 1 call to Sub::Exporter::__ANON__[Sub/Exporter.pm:337] |
| 13 | |||||
| 14 | # multiple inheritance is terrible | ||||
| 15 | # spent 447µs within Moose::Meta::Method::Accessor::new which was called 207 times, avg 2µs/call:
# 207 times (447µs+0s) by Class::MOP::Attribute::try {...} at line 407 of Class/MOP/Attribute.pm, avg 2µs/call | ||||
| 16 | 207 | 863µs | 207 | 222ms | goto &Class::MOP::Method::Accessor::new; # spent 222ms making 207 calls to Class::MOP::Method::Accessor::new, avg 1.07ms/call |
| 17 | } | ||||
| 18 | |||||
| 19 | # spent 303µs within Moose::Meta::Method::Accessor::_new which was called 207 times, avg 1µs/call:
# 207 times (303µs+0s) by Class::MOP::Method::Accessor::new at line 36 of Class/MOP/Method/Accessor.pm, avg 1µs/call | ||||
| 20 | 207 | 680µs | 207 | 43.9ms | goto &Class::MOP::Method::Accessor::_new; # spent 43.9ms making 207 calls to Class::MOP::Method::Accessor::_new, avg 212µs/call |
| 21 | } | ||||
| 22 | |||||
| 23 | sub _error_thrower { | ||||
| 24 | my $self = shift; | ||||
| 25 | return $self->associated_attribute | ||||
| 26 | if ref($self) && defined($self->associated_attribute); | ||||
| 27 | return $self->SUPER::_error_thrower; | ||||
| 28 | } | ||||
| 29 | |||||
| 30 | # spent 90.9ms (2.01+88.8) within Moose::Meta::Method::Accessor::_compile_code which was called 207 times, avg 439µs/call:
# 141 times (1.39ms+60.0ms) by Class::MOP::Method::Accessor::try {...} at line 151 of Class/MOP/Method/Accessor.pm, avg 436µs/call
# 50 times (504µs+24.4ms) by Class::MOP::Method::Accessor::try {...} at line 113 of Class/MOP/Method/Accessor.pm, avg 499µs/call
# 8 times (60µs+2.28ms) by Class::MOP::Method::Accessor::try {...} at line 247 of Class/MOP/Method/Accessor.pm, avg 292µs/call
# 8 times (59µs+2.08ms) by Class::MOP::Method::Accessor::try {...} at line 219 of Class/MOP/Method/Accessor.pm, avg 268µs/call | ||||
| 31 | 207 | 61µs | my $self = shift; | ||
| 32 | 207 | 188µs | my @args = @_; | ||
| 33 | try { | ||||
| 34 | 207 | 1.17ms | 207 | 82.4ms | $self->SUPER::_compile_code(@args); # spent 82.4ms making 207 calls to Class::MOP::Method::Generated::_compile_code, avg 398µs/call |
| 35 | } | ||||
| 36 | catch { | ||||
| 37 | throw_exception( CouldNotCreateWriter => attribute => $self->associated_attribute, | ||||
| 38 | error => $_, | ||||
| 39 | instance => $self | ||||
| 40 | ); | ||||
| 41 | 207 | 1.46ms | 414 | 580µs | }; # spent 580µs making 207 calls to Try::Tiny::catch, avg 3µs/call
# spent 88.3ms making 207 calls to Try::Tiny::try, avg 426µs/call, recursion: max depth 3, sum of overlapping time 88.3ms |
| 42 | } | ||||
| 43 | |||||
| 44 | # spent 18.4ms (1.21+17.2) within Moose::Meta::Method::Accessor::_eval_environment which was called 207 times, avg 89µs/call:
# 207 times (1.21ms+17.2ms) by Class::MOP::Method::Generated::_compile_code at line 52 of Class/MOP/Method/Generated.pm, avg 89µs/call | ||||
| 45 | 207 | 77µs | my $self = shift; | ||
| 46 | 207 | 796µs | 414 | 17.2ms | return $self->associated_attribute->_eval_environment; # spent 16.9ms making 207 calls to Moose::Meta::Attribute::_eval_environment, avg 82µs/call
# spent 284µs making 207 calls to Class::MOP::Method::Accessor::associated_attribute, avg 1µs/call |
| 47 | } | ||||
| 48 | |||||
| 49 | # spent 3.04ms (2.25+795µs) within Moose::Meta::Method::Accessor::_instance_is_inlinable which was called 206 times, avg 15µs/call:
# 140 times (1.53ms+538µs) by Moose::Meta::Method::Accessor::_generate_reader_method at line 56, avg 15µs/call
# 50 times (572µs+211µs) by Moose::Meta::Method::Accessor::_generate_accessor_method at line 68, avg 16µs/call
# 8 times (74µs+24µs) by Moose::Meta::Method::Accessor::_generate_predicate_method at line 74, avg 12µs/call
# 8 times (70µs+23µs) by Moose::Meta::Method::Accessor::_generate_clearer_method at line 80, avg 12µs/call | ||||
| 50 | 206 | 48µs | my $self = shift; | ||
| 51 | 206 | 2.19ms | 824 | 795µs | return $self->associated_attribute->associated_class->instance_metaclass->is_inlinable; # spent 261µs making 206 calls to Class::MOP::Instance::is_inlinable, avg 1µs/call
# spent 241µs making 206 calls to Class::MOP::Method::Accessor::associated_attribute, avg 1µs/call
# spent 165µs making 206 calls to Class::MOP::Class::instance_metaclass, avg 802ns/call
# spent 128µs making 206 calls to Class::MOP::Attribute::associated_class, avg 620ns/call |
| 52 | } | ||||
| 53 | |||||
| 54 | # spent 111ms (902µs+110) within Moose::Meta::Method::Accessor::_generate_reader_method which was called 140 times, avg 790µs/call:
# 140 times (902µs+110ms) by Class::MOP::Method::Accessor::_initialize_body at line 91 of Class/MOP/Method/Accessor.pm, avg 790µs/call | ||||
| 55 | 140 | 43µs | my $self = shift; | ||
| 56 | 140 | 642µs | 280 | 110ms | $self->_instance_is_inlinable ? $self->_generate_reader_method_inline(@_) # spent 108ms making 140 calls to Class::MOP::Method::Accessor::_generate_reader_method_inline, avg 769µs/call
# spent 2.07ms making 140 calls to Moose::Meta::Method::Accessor::_instance_is_inlinable, avg 15µs/call |
| 57 | : $self->SUPER::_generate_reader_method(@_); | ||||
| 58 | } | ||||
| 59 | |||||
| 60 | sub _generate_writer_method { | ||||
| 61 | my $self = shift; | ||||
| 62 | $self->_instance_is_inlinable ? $self->_generate_writer_method_inline(@_) | ||||
| 63 | : $self->SUPER::_generate_writer_method(@_); | ||||
| 64 | } | ||||
| 65 | |||||
| 66 | # spent 52.3ms (403µs+51.8) within Moose::Meta::Method::Accessor::_generate_accessor_method which was called 50 times, avg 1.05ms/call:
# 50 times (403µs+51.8ms) by Class::MOP::Method::Accessor::_initialize_body at line 91 of Class/MOP/Method/Accessor.pm, avg 1.05ms/call | ||||
| 67 | 50 | 31µs | my $self = shift; | ||
| 68 | 50 | 290µs | 100 | 51.8ms | $self->_instance_is_inlinable ? $self->_generate_accessor_method_inline(@_) # spent 51.1ms making 50 calls to Class::MOP::Method::Accessor::_generate_accessor_method_inline, avg 1.02ms/call
# spent 783µs making 50 calls to Moose::Meta::Method::Accessor::_instance_is_inlinable, avg 16µs/call |
| 69 | : $self->SUPER::_generate_accessor_method(@_); | ||||
| 70 | } | ||||
| 71 | |||||
| 72 | # spent 2.87ms (70µs+2.80) within Moose::Meta::Method::Accessor::_generate_predicate_method which was called 8 times, avg 359µs/call:
# 8 times (70µs+2.80ms) by Class::MOP::Method::Accessor::_initialize_body at line 91 of Class/MOP/Method/Accessor.pm, avg 359µs/call | ||||
| 73 | 8 | 3µs | my $self = shift; | ||
| 74 | 8 | 50µs | 16 | 2.80ms | $self->_instance_is_inlinable ? $self->_generate_predicate_method_inline(@_) # spent 2.70ms making 8 calls to Class::MOP::Method::Accessor::_generate_predicate_method_inline, avg 338µs/call
# spent 98µs making 8 calls to Moose::Meta::Method::Accessor::_instance_is_inlinable, avg 12µs/call |
| 75 | : $self->SUPER::_generate_predicate_method(@_); | ||||
| 76 | } | ||||
| 77 | |||||
| 78 | # spent 3.10ms (69µs+3.03) within Moose::Meta::Method::Accessor::_generate_clearer_method which was called 8 times, avg 387µs/call:
# 8 times (69µs+3.03ms) by Class::MOP::Method::Accessor::_initialize_body at line 91 of Class/MOP/Method/Accessor.pm, avg 387µs/call | ||||
| 79 | 8 | 3µs | my $self = shift; | ||
| 80 | 8 | 45µs | 16 | 3.03ms | $self->_instance_is_inlinable ? $self->_generate_clearer_method_inline(@_) # spent 2.94ms making 8 calls to Class::MOP::Method::Accessor::_generate_clearer_method_inline, avg 367µs/call
# spent 93µs making 8 calls to Moose::Meta::Method::Accessor::_instance_is_inlinable, avg 12µs/call |
| 81 | : $self->SUPER::_generate_clearer_method(@_); | ||||
| 82 | } | ||||
| 83 | |||||
| 84 | sub _writer_value_needs_copy { | ||||
| 85 | shift->associated_attribute->_writer_value_needs_copy(@_); | ||||
| 86 | } | ||||
| 87 | |||||
| 88 | sub _inline_tc_code { | ||||
| 89 | shift->associated_attribute->_inline_tc_code(@_); | ||||
| 90 | } | ||||
| 91 | |||||
| 92 | sub _inline_check_coercion { | ||||
| 93 | shift->associated_attribute->_inline_check_coercion(@_); | ||||
| 94 | } | ||||
| 95 | |||||
| 96 | sub _inline_check_constraint { | ||||
| 97 | shift->associated_attribute->_inline_check_constraint(@_); | ||||
| 98 | } | ||||
| 99 | |||||
| 100 | sub _inline_check_lazy { | ||||
| 101 | shift->associated_attribute->_inline_check_lazy(@_); | ||||
| 102 | } | ||||
| 103 | |||||
| 104 | sub _inline_store_value { | ||||
| 105 | shift->associated_attribute->_inline_instance_set(@_) . ';'; | ||||
| 106 | } | ||||
| 107 | |||||
| 108 | sub _inline_get_old_value_for_trigger { | ||||
| 109 | shift->associated_attribute->_inline_get_old_value_for_trigger(@_); | ||||
| 110 | } | ||||
| 111 | |||||
| 112 | sub _inline_trigger { | ||||
| 113 | shift->associated_attribute->_inline_trigger(@_); | ||||
| 114 | } | ||||
| 115 | |||||
| 116 | sub _get_value { | ||||
| 117 | shift->associated_attribute->_inline_instance_get(@_); | ||||
| 118 | } | ||||
| 119 | |||||
| 120 | sub _has_value { | ||||
| 121 | shift->associated_attribute->_inline_instance_has(@_); | ||||
| 122 | } | ||||
| 123 | |||||
| 124 | 1 | 3µs | 1; | ||
| 125 | |||||
| 126 | # ABSTRACT: A Moose Method metaclass for accessors | ||||
| 127 | |||||
| 128 | __END__ |