← Index
NYTProf Performance Profile   « line view »
For examples/Atom-timer.pl
  Run on Mon Aug 12 14:45:28 2013
Reported on Mon Aug 12 14:46:15 2013

Filename/Users/dde/perl5/perlbrew/perls/5.18.0t/lib/site_perl/5.18.0/darwin-thread-multi-2level/Moose/Meta/Method/Accessor/Native/Array/set.pm
StatementsExecuted 87 statements in 459µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
41121µs29µsMoose::Meta::Method::Accessor::Native::Array::set::::_inline_coerce_new_valuesMoose::Meta::Method::Accessor::Native::Array::set::_inline_coerce_new_values
41114µs394µsMoose::Meta::Method::Accessor::Native::Array::set::::_inline_check_argumentsMoose::Meta::Method::Accessor::Native::Array::set::_inline_check_arguments
82214µs14µsMoose::Meta::Method::Accessor::Native::Array::set::::_return_valueMoose::Meta::Method::Accessor::Native::Array::set::_return_value
41110µs10µsMoose::Meta::Method::Accessor::Native::Array::set::::_potential_valueMoose::Meta::Method::Accessor::Native::Array::set::_potential_value
1119µs9µsMoose::Meta::Method::Accessor::Native::Array::set::::BEGIN@2Moose::Meta::Method::Accessor::Native::Array::set::BEGIN@2
4119µs9µsMoose::Meta::Method::Accessor::Native::Array::set::::_inline_optimized_set_new_valueMoose::Meta::Method::Accessor::Native::Array::set::_inline_optimized_set_new_value
1117µs88µsMoose::Meta::Method::Accessor::Native::Array::set::::BEGIN@67Moose::Meta::Method::Accessor::Native::Array::set::BEGIN@67
1117µs1.86msMoose::Meta::Method::Accessor::Native::Array::set::::BEGIN@12Moose::Meta::Method::Accessor::Native::Array::set::BEGIN@12
1116µs10µsMoose::Meta::Method::Accessor::Native::Array::set::::BEGIN@10Moose::Meta::Method::Accessor::Native::Array::set::BEGIN@10
1116µs17µsMoose::Meta::Method::Accessor::Native::Array::set::::BEGIN@9Moose::Meta::Method::Accessor::Native::Array::set::BEGIN@9
4114µs4µsMoose::Meta::Method::Accessor::Native::Array::set::::_maximum_argumentsMoose::Meta::Method::Accessor::Native::Array::set::_maximum_arguments
4114µs4µsMoose::Meta::Method::Accessor::Native::Array::set::::_minimum_argumentsMoose::Meta::Method::Accessor::Native::Array::set::_minimum_arguments
1112µs2µsMoose::Meta::Method::Accessor::Native::Array::set::::_new_membersMoose::Meta::Method::Accessor::Native::Array::set::_new_members
1111µs1µsMoose::Meta::Method::Accessor::Native::Array::set::::_adds_membersMoose::Meta::Method::Accessor::Native::Array::set::_adds_members
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package Moose::Meta::Method::Accessor::Native::Array::set;
2
# spent 9µs within Moose::Meta::Method::Accessor::Native::Array::set::BEGIN@2 which was called: # once (9µs+0s) by Module::Runtime::require_module at line 4
BEGIN {
314µs $Moose::Meta::Method::Accessor::Native::Array::set::AUTHORITY = 'cpan:STEVAN';
4132µs19µs}
5{
62600ns $Moose::Meta::Method::Accessor::Native::Array::set::VERSION = '2.1005';
7}
8
9224µs227µs
# spent 17µs (6+11) within Moose::Meta::Method::Accessor::Native::Array::set::BEGIN@9 which was called: # once (6µs+11µs) by Module::Runtime::require_module at line 9
use strict;
# spent 17µs making 1 call to Moose::Meta::Method::Accessor::Native::Array::set::BEGIN@9 # spent 11µs making 1 call to strict::import
10220µs214µs
# spent 10µs (6+4) within Moose::Meta::Method::Accessor::Native::Array::set::BEGIN@10 which was called: # once (6µs+4µs) by Module::Runtime::require_module at line 10
use warnings;
# spent 10µs making 1 call to Moose::Meta::Method::Accessor::Native::Array::set::BEGIN@10 # spent 4µs making 1 call to warnings::import
11
122245µs23.72ms
# spent 1.86ms (7µs+1.86) within Moose::Meta::Method::Accessor::Native::Array::set::BEGIN@12 which was called: # once (7µs+1.86ms) by Module::Runtime::require_module at line 12
use Moose::Role;
13
1412µs16.50mswith 'Moose::Meta::Method::Accessor::Native::Array::Writer';
# spent 6.50ms making 1 call to Moose::Role::with
15
1648µs
# spent 4µs within Moose::Meta::Method::Accessor::Native::Array::set::_minimum_arguments which was called 4 times, avg 1µs/call: # 4 times (4µs+0s) by Moose::Meta::Method::Accessor::Native::_inline_check_argument_count at line 75 of Moose/Meta/Method/Accessor/Native.pm, avg 1µs/call
sub _minimum_arguments { 2 }
17
1848µs
# spent 4µs within Moose::Meta::Method::Accessor::Native::Array::set::_maximum_arguments which was called 4 times, avg 1µs/call: # 4 times (4µs+0s) by Moose::Meta::Method::Accessor::Native::_inline_check_argument_count at line 90 of Moose/Meta/Method/Accessor/Native.pm, avg 1µs/call
sub _maximum_arguments { 2 }
19
20
# spent 394µs (14+380) within Moose::Meta::Method::Accessor::Native::Array::set::_inline_check_arguments which was called 4 times, avg 98µs/call: # 4 times (14µs+380µs) by Moose::Meta::Method::Accessor::Native::Writer::_inline_writer_core at line 44 of Moose/Meta/Method/Accessor/Native/Writer.pm, avg 98µs/call
sub _inline_check_arguments {
214600ns my $self = shift;
22
23411µs4380µs return $self->_inline_check_var_is_valid_index('$_[0]');
# spent 380µs making 4 calls to Moose::Meta::Method::Accessor::Native::Array::_inline_check_var_is_valid_index, avg 95µs/call
24}
25
2613µs
# spent 1µs within Moose::Meta::Method::Accessor::Native::Array::set::_adds_members which was called: # once (1µs+0s) by Moose::Meta::Method::Accessor::Native::Collection::_inline_tc_code at line 64 of Moose/Meta/Method/Accessor/Native/Collection.pm
sub _adds_members { 1 }
27
28
# spent 10µs within Moose::Meta::Method::Accessor::Native::Array::set::_potential_value which was called 4 times, avg 3µs/call: # 4 times (10µs+0s) by Moose::Meta::Method::Accessor::Native::Writer::_inline_writer_core at line 40 of Moose/Meta/Method/Accessor/Native/Writer.pm, avg 3µs/call
sub _potential_value {
294700ns my $self = shift;
3041µs my ($slot_access) = @_;
31
32411µs return '(do { '
33 . 'my @potential = @{ (' . $slot_access . ') }; '
34 . '$potential[$_[0]] = $_[1]; '
35 . '\@potential; '
36 . '})';
37}
38
39# We need to override this because while @_ can be written to, we cannot write
40# directly to $_[1].
41
# spent 29µs (21+8) within Moose::Meta::Method::Accessor::Native::Array::set::_inline_coerce_new_values which was called 4 times, avg 7µs/call: # 4 times (21µs+8µs) by Moose::Meta::Method::Accessor::Native::Writer::_inline_writer_core at line 57 of Moose/Meta/Method/Accessor/Native/Writer.pm, avg 7µs/call
sub _inline_coerce_new_values {
424700ns my $self = shift;
43
44413µs88µs return unless $self->associated_attribute->should_coerce;
# spent 4µs making 4 calls to Moose::Meta::Mixin::AttributeCore::should_coerce, avg 1µs/call # spent 4µs making 4 calls to Class::MOP::Method::Accessor::associated_attribute, avg 900ns/call
45
46 return unless $self->_tc_member_type_can_coerce;
47
48 return '@_ = ($_[0], $member_coercion->($_[1]));';
49};
50
5113µs
# spent 2µs within Moose::Meta::Method::Accessor::Native::Array::set::_new_members which was called: # once (2µs+0s) by Moose::Meta::Method::Accessor::Native::Collection::_inline_tc_code at line 66 of Moose/Meta/Method/Accessor/Native/Collection.pm
sub _new_members { '$_[1]' }
52
53
# spent 9µs within Moose::Meta::Method::Accessor::Native::Array::set::_inline_optimized_set_new_value which was called 4 times, avg 2µs/call: # 4 times (9µs+0s) by Moose::Meta::Method::Accessor::Native::Writer::_inline_set_new_value at line 154 of Moose/Meta/Method/Accessor/Native/Writer.pm, avg 2µs/call
sub _inline_optimized_set_new_value {
544800ns my $self = shift;
5542µs my ($inv, $new, $slot_access) = @_;
56
57410µs return $slot_access . '->[$_[0]] = $_[1];';
58}
59
60
# spent 14µs within Moose::Meta::Method::Accessor::Native::Array::set::_return_value which was called 8 times, avg 2µs/call: # 4 times (8µs+0s) by Moose::Meta::Method::Accessor::Native::Writer::_inline_writer_core at line 51 of Moose/Meta/Method/Accessor/Native/Writer.pm, avg 2µs/call # 4 times (5µs+0s) by Moose::Meta::Method::Accessor::Native::_inline_return_value at line 112 of Moose/Meta/Method/Accessor/Native.pm, avg 1µs/call
sub _return_value {
6181µs my $self = shift;
6282µs my ($slot_access) = @_;
63
64817µs return $slot_access . '->[$_[0]]';
65}
66
67232µs2168µs
# spent 88µs (7+80) within Moose::Meta::Method::Accessor::Native::Array::set::BEGIN@67 which was called: # once (7µs+80µs) by Module::Runtime::require_module at line 67
no Moose::Role;
68
6917µs1;