← Index
NYTProf Performance Profile   « line view »
For script/ponapi
  Run on Wed Feb 10 15:51:26 2016
Reported on Thu Feb 11 09:43:10 2016

Filename/usr/local/lib/perl/5.18.2/Class/MOP/Mixin/AttributeCore.pm
StatementsExecuted 12244 statements in 21.1ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1228432.93ms4.29msClass::MOP::Mixin::AttributeCore::::defaultClass::MOP::Mixin::AttributeCore::default
855441.47ms1.47msClass::MOP::Mixin::AttributeCore::::is_default_a_coderefClass::MOP::Mixin::AttributeCore::is_default_a_coderef
61120µs26µsClass::MOP::Mixin::AttributeCore::::has_read_methodClass::MOP::Mixin::AttributeCore::has_read_method
1118µs17µsClass::MOP::Mixin::AttributeCore::::BEGIN@4Class::MOP::Mixin::AttributeCore::BEGIN@4
1117µs286µsClass::MOP::Mixin::AttributeCore::::BEGIN@9Class::MOP::Mixin::AttributeCore::BEGIN@9
1116µs27µsClass::MOP::Mixin::AttributeCore::::BEGIN@7Class::MOP::Mixin::AttributeCore::BEGIN@7
1116µs8µsClass::MOP::Mixin::AttributeCore::::BEGIN@5Class::MOP::Mixin::AttributeCore::BEGIN@5
0000s0sClass::MOP::Mixin::AttributeCore::::has_write_methodClass::MOP::Mixin::AttributeCore::has_write_method
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package Class::MOP::Mixin::AttributeCore;
21500nsour $VERSION = '2.1604';
3
4218µs226µs
# spent 17µs (8+9) within Class::MOP::Mixin::AttributeCore::BEGIN@4 which was called: # once (8µs+9µs) by Class::MOP::BEGIN@14 at line 4
use strict;
# spent 17µs making 1 call to Class::MOP::Mixin::AttributeCore::BEGIN@4 # spent 9µs making 1 call to strict::import
5218µs211µs
# spent 8µs (6+3) within Class::MOP::Mixin::AttributeCore::BEGIN@5 which was called: # once (6µs+3µs) by Class::MOP::BEGIN@14 at line 5
use warnings;
# spent 8µs making 1 call to Class::MOP::Mixin::AttributeCore::BEGIN@5 # spent 3µs making 1 call to warnings::import
6
7220µs249µs
# spent 27µs (6+22) within Class::MOP::Mixin::AttributeCore::BEGIN@7 which was called: # once (6µs+22µs) by Class::MOP::BEGIN@14 at line 7
use Scalar::Util 'blessed';
# spent 27µs making 1 call to Class::MOP::Mixin::AttributeCore::BEGIN@7 # spent 22µs making 1 call to Exporter::import
8
92286µs2565µs
# spent 286µs (7+279) within Class::MOP::Mixin::AttributeCore::BEGIN@9 which was called: # once (7µs+279µs) by Class::MOP::BEGIN@14 at line 9
use parent 'Class::MOP::Mixin';
# spent 286µs making 1 call to Class::MOP::Mixin::AttributeCore::BEGIN@9 # spent 279µs making 1 call to parent::import
10
11317674µssub has_accessor { defined $_[0]->{'accessor'} }
12323580µssub has_reader { defined $_[0]->{'reader'} }
13317628µssub has_writer { defined $_[0]->{'writer'} }
14317523µssub has_predicate { defined $_[0]->{'predicate'} }
15317591µssub has_clearer { defined $_[0]->{'clearer'} }
16366580µssub has_builder { defined $_[0]->{'builder'} }
171118µssub has_init_arg { defined $_[0]->{'init_arg'} }
187981.45mssub has_default { exists $_[0]->{'default'} }
1935119.60mssub has_initializer { defined $_[0]->{'initializer'} }
20sub has_insertion_order { defined $_[0]->{'insertion_order'} }
21
22312625µssub _set_insertion_order { $_[0]->{'insertion_order'} = $_[1] }
23
24617µs66µs
# spent 26µs (20+7) within Class::MOP::Mixin::AttributeCore::has_read_method which was called 6 times, avg 4µs/call: # 6 times (20µs+7µs) by Moose::Meta::Method::Delegation::_get_delegate_accessor at line 127 of Moose/Meta/Method/Delegation.pm, avg 4µs/call
sub has_read_method { $_[0]->has_reader || $_[0]->has_accessor }
# spent 6µs making 6 calls to Class::MOP::Mixin::AttributeCore::has_reader, avg 1µs/call
25sub has_write_method { $_[0]->has_writer || $_[0]->has_accessor }
26
27
# spent 1.47ms within Class::MOP::Mixin::AttributeCore::is_default_a_coderef which was called 855 times, avg 2µs/call: # 580 times (795µs+0s) by Class::MOP::Mixin::AttributeCore::default at line 40, avg 1µs/call # 168 times (330µs+0s) by Class::MOP::Class::_inline_default_value at line 668 of Class/MOP/Class.pm, avg 2µs/call # 73 times (220µs+0s) by Class::MOP::Attribute::new at line 49 of Class/MOP/Attribute.pm, avg 3µs/call # 34 times (124µs+0s) by Moose::Meta::Attribute::_inline_generate_default at line 910 of Moose/Meta/Attribute.pm, avg 4µs/call
sub is_default_a_coderef {
28 # Uber hack because it is called from CMOP::Attribute constructor as
29 # $class->is_default_a_coderef(\%options)
30855649µs my ($value) = ref $_[0] ? $_[0]->{'default'} : $_[1]->{'default'};
31
32855472µs return unless ref($value);
33
346301.22ms return ref($value) eq 'CODE'
35 || ( blessed($value) && $value->isa('Class::MOP::Method') );
36}
37
38
# spent 4.29ms (2.93+1.36) within Class::MOP::Mixin::AttributeCore::default which was called 1228 times, avg 3µs/call: # 580 times (2.18ms+1.36ms) by Class::MOP::Attribute::initialize_instance_slot at line 127 of Class/MOP/Attribute.pm, avg 6µs/call # 468 times (416µs+0s) by Class::MOP::Class::_eval_environment at line 711 of Class/MOP/Class.pm, avg 889ns/call # 98 times (195µs+0s) by Moose::Meta::Attribute::_eval_environment at line 760 of Moose/Meta/Attribute.pm, avg 2µs/call # 82 times (139µs+0s) by Class::MOP::Class::_immutable_metaclass at line 1347 of Class/MOP/Class.pm, avg 2µs/call
sub default {
391228231µs my ( $self, $instance ) = @_;
4012281.49ms9651.36ms if ( defined $instance && $self->is_default_a_coderef ) {
# spent 795µs making 580 calls to Class::MOP::Mixin::AttributeCore::is_default_a_coderef, avg 1µs/call # spent 69µs making 39 calls to Class::MOP::__ANON__[Class/MOP.pm:184], avg 2µs/call # spent 68µs making 39 calls to Moose::Meta::Class::__ANON__[Moose/Meta/Class.pm:34], avg 2µs/call # spent 57µs making 39 calls to Class::MOP::__ANON__[Class/MOP.pm:243], avg 1µs/call # spent 57µs making 39 calls to Moose::Meta::Class::__ANON__[Moose/Meta/Class.pm:28], avg 1µs/call # spent 56µs making 39 calls to Class::MOP::__ANON__[Class/MOP.pm:307], avg 1µs/call # spent 54µs making 39 calls to Class::MOP::__ANON__[Class/MOP.pm:290], avg 1µs/call # spent 53µs making 39 calls to Class::MOP::__ANON__[Class/MOP.pm:211], avg 1µs/call # spent 51µs making 39 calls to Class::MOP::__ANON__[Class/MOP.pm:139], avg 1µs/call # spent 51µs making 33 calls to Class::MOP::__ANON__[Class/MOP.pm:499], avg 2µs/call # spent 45µs making 39 calls to Class::MOP::__ANON__[Class/MOP.pm:270], avg 1µs/call # spent 2µs making 1 call to Moose::Meta::TypeConstraint::Registry::__ANON__[Moose/Meta/TypeConstraint/Registry.pm:23]
41 # if the default is a CODE ref, then we pass in the instance and
42 # default can return a value based on that instance. Somewhat crude,
43 # but works.
44 return $self->{'default'}->($instance);
45 }
468431.40ms $self->{'default'};
47}
48
4912µs1;
50
51# ABSTRACT: Core attributes shared by attribute metaclasses
52
53__END__