| Filename | /Users/dde/perl5/perlbrew/perls/5.18.0t/lib/site_perl/5.18.0/darwin-thread-multi-2level/Moose/Meta/Method/Accessor.pm |
| Statements | Executed 925 statements in 2.82ms |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 99 | 4 | 2 | 704µs | 936µs | Moose::Meta::Method::Accessor::_instance_is_inlinable |
| 61 | 4 | 2 | 494µs | 24.8ms | Moose::Meta::Method::Accessor::_compile_code |
| 61 | 2 | 2 | 259µs | 3.98ms | Moose::Meta::Method::Accessor::_eval_environment |
| 47 | 1 | 1 | 195µs | 262µs | Moose::Meta::Method::Accessor::_error_thrower |
| 26 | 1 | 1 | 111µs | 820µs | Moose::Meta::Method::Accessor::_get_value |
| 26 | 2 | 2 | 108µs | 5.83ms | Moose::Meta::Method::Accessor::_inline_check_lazy |
| 22 | 1 | 1 | 106µs | 27.3ms | Moose::Meta::Method::Accessor::_generate_accessor_method |
| 26 | 2 | 1 | 98µs | 197µs | Moose::Meta::Method::Accessor::_writer_value_needs_copy |
| 61 | 2 | 2 | 89µs | 89µs | Moose::Meta::Method::Accessor::new |
| 13 | 1 | 1 | 52µs | 110µs | Moose::Meta::Method::Accessor::_inline_trigger |
| 8 | 1 | 1 | 45µs | 2.45ms | Moose::Meta::Method::Accessor::_generate_predicate_method |
| 35 | 1 | 1 | 36µs | 36µs | Moose::Meta::Method::Accessor::_new |
| 4 | 1 | 1 | 28µs | 3.21ms | Moose::Meta::Method::Accessor::_generate_reader_method |
| 1 | 1 | 1 | 8µs | 8µs | Moose::Meta::Method::Accessor::BEGIN@3 |
| 1 | 1 | 1 | 6µs | 34µs | Moose::Meta::Method::Accessor::BEGIN@13 |
| 1 | 1 | 1 | 6µs | 89µs | Moose::Meta::Method::Accessor::BEGIN@15 |
| 1 | 1 | 1 | 6µs | 16µs | Moose::Meta::Method::Accessor::BEGIN@10 |
| 1 | 1 | 1 | 5µs | 8µs | Moose::Meta::Method::Accessor::BEGIN@11 |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::__ANON__[:39] |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::__ANON__[:47] |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::_generate_clearer_method |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::_generate_writer_method |
| 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_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 |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | |||||
| 2 | package Moose::Meta::Method::Accessor; | ||||
| 3 | # spent 8µs within Moose::Meta::Method::Accessor::BEGIN@3 which was called:
# once (8µs+0s) by Moose::Meta::Attribute::BEGIN@21 at line 5 | ||||
| 4 | 1 | 4µs | $Moose::Meta::Method::Accessor::AUTHORITY = 'cpan:STEVAN'; | ||
| 5 | 1 | 26µs | 1 | 8µs | } # spent 8µs making 1 call to Moose::Meta::Method::Accessor::BEGIN@3 |
| 6 | { | ||||
| 7 | 2 | 900ns | $Moose::Meta::Method::Accessor::VERSION = '2.1005'; | ||
| 8 | } | ||||
| 9 | |||||
| 10 | 2 | 19µs | 2 | 26µs | # spent 16µs (6+10) within Moose::Meta::Method::Accessor::BEGIN@10 which was called:
# once (6µs+10µs) by Moose::Meta::Attribute::BEGIN@21 at line 10 # spent 16µs making 1 call to Moose::Meta::Method::Accessor::BEGIN@10
# spent 10µs making 1 call to strict::import |
| 11 | 2 | 18µs | 2 | 11µs | # spent 8µs (5+3) within Moose::Meta::Method::Accessor::BEGIN@11 which was called:
# once (5µs+3µs) by Moose::Meta::Attribute::BEGIN@21 at line 11 # spent 8µs making 1 call to Moose::Meta::Method::Accessor::BEGIN@11
# spent 3µs making 1 call to warnings::import |
| 12 | |||||
| 13 | 2 | 24µs | 2 | 61µs | # spent 34µs (6+27) within Moose::Meta::Method::Accessor::BEGIN@13 which was called:
# once (6µs+27µs) by Moose::Meta::Attribute::BEGIN@21 at line 13 # spent 34µs making 1 call to Moose::Meta::Method::Accessor::BEGIN@13
# spent 27µs making 1 call to Exporter::import |
| 14 | |||||
| 15 | 1 | 200ns | # spent 89µs (6+83) within Moose::Meta::Method::Accessor::BEGIN@15 which was called:
# once (6µs+83µs) by Moose::Meta::Attribute::BEGIN@21 at line 16 | ||
| 16 | 1 | 518µs | 2 | 172µs | 'Class::MOP::Method::Accessor'; # spent 89µs making 1 call to Moose::Meta::Method::Accessor::BEGIN@15
# spent 83µs making 1 call to base::import |
| 17 | |||||
| 18 | # multiple inheritance is terrible | ||||
| 19 | # spent 89µs within Moose::Meta::Method::Accessor::new which was called 61 times, avg 1µs/call:
# 35 times (51µs+0s) by Class::MOP::Attribute::try {...} at line 389 of Class/MOP/Attribute.pm, avg 1µs/call
# 26 times (38µs+0s) by Class::MOP::Class:::around at line 42 of Moose/Meta/Method/Accessor/Native.pm, avg 1µs/call | ||||
| 20 | 61 | 164µs | 61 | 91.1ms | goto &Class::MOP::Method::Accessor::new; # spent 91.1ms making 61 calls to Class::MOP::Method::Accessor::new, avg 1.49ms/call |
| 21 | } | ||||
| 22 | |||||
| 23 | # spent 36µs within Moose::Meta::Method::Accessor::_new which was called 35 times, avg 1µs/call:
# 35 times (36µs+0s) by Class::MOP::Method::Accessor::new at line 35 of Class/MOP/Method/Accessor.pm, avg 1µs/call | ||||
| 24 | 35 | 72µs | 35 | 17.8ms | goto &Class::MOP::Method::Accessor::_new; # spent 17.8ms making 35 calls to Class::MOP::Method::Accessor::_new, avg 510µs/call |
| 25 | } | ||||
| 26 | |||||
| 27 | # spent 262µs (195+67) within Moose::Meta::Method::Accessor::_error_thrower which was called 47 times, avg 6µs/call:
# 47 times (195µs+67µs) by Moose::Meta::Method::_inline_throw_error at line 37 of Moose/Meta/Method.pm, avg 6µs/call | ||||
| 28 | 47 | 5µs | my $self = shift; | ||
| 29 | 47 | 130µs | 94 | 67µs | return $self->associated_attribute # spent 67µs making 94 calls to Class::MOP::Method::Accessor::associated_attribute, avg 716ns/call |
| 30 | if ref($self) && defined($self->associated_attribute); | ||||
| 31 | return $self->SUPER::_error_thrower; | ||||
| 32 | } | ||||
| 33 | |||||
| 34 | # spent 24.8ms (494µs+24.3) within Moose::Meta::Method::Accessor::_compile_code which was called 61 times, avg 407µs/call:
# 26 times (202µs+12.0ms) by Moose::Meta::Method::Accessor::Native::_initialize_body at line 57 of Moose/Meta/Method/Accessor/Native.pm, avg 471µs/call
# 22 times (186µs+8.90ms) by Class::MOP::Method::Accessor::try {...} at line 112 of Class/MOP/Method/Accessor.pm, avg 413µs/call
# 8 times (57µs+1.83ms) by Class::MOP::Method::Accessor::try {...} at line 204 of Class/MOP/Method/Accessor.pm, avg 235µs/call
# 5 times (49µs+1.55ms) by Class::MOP::Method::Accessor::try {...} at line 142 of Class/MOP/Method/Accessor.pm, avg 320µs/call | ||||
| 35 | 61 | 8µs | my $self = shift; | ||
| 36 | 61 | 25µs | my @args = @_; | ||
| 37 | try { | ||||
| 38 | 61 | 130µs | 61 | 23.0ms | $self->SUPER::_compile_code(@args); # spent 23.0ms making 61 calls to Class::MOP::Method::Generated::_compile_code, avg 376µ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 | 61 | 382µs | 122 | 141µs | }; # spent 141µs making 61 calls to Try::Tiny::catch, avg 2µs/call
# spent 24.2ms making 61 calls to Try::Tiny::try, avg 396µs/call, recursion: max depth 4, sum of overlapping time 24.2ms |
| 48 | } | ||||
| 49 | |||||
| 50 | # spent 3.98ms (259µs+3.72) within Moose::Meta::Method::Accessor::_eval_environment which was called 61 times, avg 65µs/call:
# 35 times (152µs+2.03ms) by Class::MOP::Method::Generated::_compile_code at line 59 of Class/MOP/Method/Generated.pm, avg 62µs/call
# 26 times (107µs+1.69ms) by Moose::Role::super at line 77 of Moose/Role.pm, avg 69µs/call | ||||
| 51 | 61 | 6µs | my $self = shift; | ||
| 52 | 61 | 154µs | 122 | 3.72ms | return $self->associated_attribute->_eval_environment; # spent 3.66ms making 61 calls to Moose::Meta::Attribute::_eval_environment, avg 60µs/call
# spent 56µs making 61 calls to Class::MOP::Method::Accessor::associated_attribute, avg 913ns/call |
| 53 | } | ||||
| 54 | |||||
| 55 | # spent 936µs (704+232) within Moose::Meta::Method::Accessor::_instance_is_inlinable which was called 99 times, avg 9µs/call:
# 65 times (460µs+151µs) by Moose::Meta::Method::Accessor::Native::_slot_access_can_be_inlined at line 161 of Moose/Meta/Method/Accessor/Native.pm, avg 9µs/call
# 22 times (151µs+52µs) by Moose::Meta::Method::Accessor::_generate_accessor_method at line 74, avg 9µs/call
# 8 times (52µs+19µs) by Moose::Meta::Method::Accessor::_generate_predicate_method at line 80, avg 9µs/call
# 4 times (40µs+10µs) by Moose::Meta::Method::Accessor::_generate_reader_method at line 62, avg 13µs/call | ||||
| 56 | 99 | 8µs | my $self = shift; | ||
| 57 | 99 | 645µs | 396 | 232µs | return $self->associated_attribute->associated_class->instance_metaclass->is_inlinable; # spent 74µs making 99 calls to Class::MOP::Method::Accessor::associated_attribute, avg 752ns/call
# spent 69µs making 99 calls to Class::MOP::Instance::is_inlinable, avg 696ns/call
# spent 46µs making 99 calls to Class::MOP::Attribute::associated_class, avg 462ns/call
# spent 43µs making 99 calls to Class::MOP::Class::instance_metaclass, avg 437ns/call |
| 58 | } | ||||
| 59 | |||||
| 60 | # spent 3.21ms (28µs+3.18) within Moose::Meta::Method::Accessor::_generate_reader_method which was called 4 times, avg 802µs/call:
# 4 times (28µs+3.18ms) by Class::MOP::Method::Accessor::_initialize_body at line 90 of Class/MOP/Method/Accessor.pm, avg 802µs/call | ||||
| 61 | 4 | 900ns | my $self = shift; | ||
| 62 | 4 | 19µs | 8 | 3.18ms | $self->_instance_is_inlinable ? $self->_generate_reader_method_inline(@_) # spent 3.13ms making 4 calls to Class::MOP::Method::Accessor::_generate_reader_method_inline, avg 782µs/call
# spent 51µs making 4 calls to Moose::Meta::Method::Accessor::_instance_is_inlinable, avg 13µ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 27.3ms (106µs+27.2) within Moose::Meta::Method::Accessor::_generate_accessor_method which was called 22 times, avg 1.24ms/call:
# 22 times (106µs+27.2ms) by Class::MOP::Method::Accessor::_initialize_body at line 90 of Class/MOP/Method/Accessor.pm, avg 1.24ms/call | ||||
| 73 | 22 | 3µs | my $self = shift; | ||
| 74 | 22 | 68µs | 44 | 27.2ms | $self->_instance_is_inlinable ? $self->_generate_accessor_method_inline(@_) # spent 27.0ms making 22 calls to Class::MOP::Method::Accessor::_generate_accessor_method_inline, avg 1.23ms/call
# spent 204µs making 22 calls to Moose::Meta::Method::Accessor::_instance_is_inlinable, avg 9µs/call |
| 75 | : $self->SUPER::_generate_accessor_method(@_); | ||||
| 76 | } | ||||
| 77 | |||||
| 78 | # spent 2.45ms (45µs+2.40) within Moose::Meta::Method::Accessor::_generate_predicate_method which was called 8 times, avg 306µs/call:
# 8 times (45µs+2.40ms) by Class::MOP::Method::Accessor::_initialize_body at line 90 of Class/MOP/Method/Accessor.pm, avg 306µs/call | ||||
| 79 | 8 | 2µs | my $self = shift; | ||
| 80 | 8 | 32µs | 16 | 2.40ms | $self->_instance_is_inlinable ? $self->_generate_predicate_method_inline(@_) # spent 2.33ms making 8 calls to Class::MOP::Method::Accessor::_generate_predicate_method_inline, avg 291µs/call
# spent 71µs making 8 calls to Moose::Meta::Method::Accessor::_instance_is_inlinable, avg 9µs/call |
| 81 | : $self->SUPER::_generate_predicate_method(@_); | ||||
| 82 | } | ||||
| 83 | |||||
| 84 | sub _generate_clearer_method { | ||||
| 85 | my $self = shift; | ||||
| 86 | $self->_instance_is_inlinable ? $self->_generate_clearer_method_inline(@_) | ||||
| 87 | : $self->SUPER::_generate_clearer_method(@_); | ||||
| 88 | } | ||||
| 89 | |||||
| 90 | # spent 197µs (98+99) within Moose::Meta::Method::Accessor::_writer_value_needs_copy which was called 26 times, avg 8µs/call:
# 13 times (53µs+48µs) by Moose::Meta::Method::Accessor::Native::Writer::_inline_copy_native_value at line 115 of Moose/Meta/Method/Accessor/Native/Writer.pm, avg 8µs/call
# 13 times (44µs+51µs) by Moose::Meta::Method::Accessor::Native::Writer::_inline_set_new_value at line 149 of Moose/Meta/Method/Accessor/Native/Writer.pm, avg 7µs/call | ||||
| 91 | 26 | 64µs | 52 | 99µs | shift->associated_attribute->_writer_value_needs_copy(@_); # spent 82µs making 26 calls to Moose::Meta::Attribute::_writer_value_needs_copy, avg 3µs/call
# spent 17µs making 26 calls to Class::MOP::Method::Accessor::associated_attribute, avg 654ns/call |
| 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 | # spent 5.83ms (108µs+5.72) within Moose::Meta::Method::Accessor::_inline_check_lazy which was called 26 times, avg 224µs/call:
# 13 times (56µs+2.90ms) by Moose::Meta::Method::Accessor::Native::Reader::_inline_reader_core at line 38 of Moose/Meta/Method/Accessor/Native/Reader.pm, avg 227µs/call
# 13 times (52µs+2.82ms) by Moose::Meta::Method::Accessor::Native::Writer::_inline_writer_core at line 44 of Moose/Meta/Method/Accessor/Native/Writer.pm, avg 221µs/call | ||||
| 107 | 26 | 76µs | 52 | 5.72ms | shift->associated_attribute->_inline_check_lazy(@_); # spent 5.70ms making 26 calls to Moose::Meta::Attribute::_inline_check_lazy, avg 219µs/call
# spent 22µs making 26 calls to Class::MOP::Method::Accessor::associated_attribute, avg 862ns/call |
| 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 | # spent 110µs (52+58) within Moose::Meta::Method::Accessor::_inline_trigger which was called 13 times, avg 8µs/call:
# 13 times (52µs+58µs) by Moose::Meta::Method::Accessor::Native::Writer::_inline_writer_core at line 57 of Moose/Meta/Method/Accessor/Native/Writer.pm, avg 8µs/call | ||||
| 119 | 13 | 136µs | 26 | 58µs | shift->associated_attribute->_inline_trigger(@_); # spent 50µs making 13 calls to Moose::Meta::Attribute::_inline_trigger, avg 4µs/call
# spent 8µs making 13 calls to Class::MOP::Method::Accessor::associated_attribute, avg 608ns/call |
| 120 | } | ||||
| 121 | |||||
| 122 | # spent 820µs (111+709) within Moose::Meta::Method::Accessor::_get_value which was called 26 times, avg 32µs/call:
# 26 times (111µs+709µs) by Moose::Role::super at line 77 of Moose/Role.pm, avg 32µs/call | ||||
| 123 | 26 | 76µs | 52 | 709µs | shift->associated_attribute->_inline_instance_get(@_); # spent 693µs making 26 calls to Class::MOP::Attribute::_inline_instance_get, avg 27µs/call
# spent 16µs making 26 calls to Class::MOP::Method::Accessor::associated_attribute, avg 619ns/call |
| 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__ |