← Index
NYTProf Performance Profile   « line view »
For /home/ss5/perl5/perlbrew/perls/perl-5.22.0/bin/benchmarkanything-storage
  Run on Mon Jan 29 16:55:34 2018
Reported on Mon Jan 29 16:57:07 2018

Filename/home/ss5/perl5/perlbrew/perls/perl-5.22.0/lib/site_perl/5.22.0/Class/Accessor/Fast.pm
StatementsExecuted 26 statements in 190µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
101114µs14µsClass::Accessor::Fast::::make_accessorClass::Accessor::Fast::make_accessor
1117µs852µsClass::Accessor::Fast::::BEGIN@2Class::Accessor::Fast::BEGIN@2
1115µs6µsClass::Accessor::Fast::::BEGIN@3Class::Accessor::Fast::BEGIN@3
0000s0sClass::Accessor::Fast::::__ANON__[:12]Class::Accessor::Fast::__ANON__[:12]
0000s0sClass::Accessor::Fast::::__ANON__[:23]Class::Accessor::Fast::__ANON__[:23]
0000s0sClass::Accessor::Fast::::__ANON__[:39]Class::Accessor::Fast::__ANON__[:39]
0000s0sClass::Accessor::Fast::::make_ro_accessorClass::Accessor::Fast::make_ro_accessor
0000s0sClass::Accessor::Fast::::make_wo_accessorClass::Accessor::Fast::make_wo_accessor
0000s0sSQL::SplitStatement::::_current_statement SQL::SplitStatement::_current_statement
0000s0sSQL::SplitStatement::::_custom_delimiter SQL::SplitStatement::_custom_delimiter
0000s0sSQL::SplitStatement::::_terminators SQL::SplitStatement::_terminators
0000s0sSQL::SplitStatement::::_tokens SQL::SplitStatement::_tokens
0000s0sSQL::SplitStatement::::_tokens_in_custom_delimiter SQL::SplitStatement::_tokens_in_custom_delimiter
0000s0sSQL::SplitStatement::::keep_comments SQL::SplitStatement::keep_comments
0000s0sSQL::SplitStatement::::keep_empty_statements SQL::SplitStatement::keep_empty_statements
0000s0sSQL::SplitStatement::::keep_extra_spaces SQL::SplitStatement::keep_extra_spaces
0000s0sSQL::SplitStatement::::keep_terminators SQL::SplitStatement::keep_terminators
0000s0sSQL::SplitStatement::::slash_terminates SQL::SplitStatement::slash_terminates
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package Class::Accessor::Fast;
2220µs2852µs
# spent 852µs (7+845) within Class::Accessor::Fast::BEGIN@2 which was called: # once (7µs+845µs) by base::import at line 2
use base 'Class::Accessor';
# spent 852µs making 1 call to Class::Accessor::Fast::BEGIN@2 # spent 845µs making 1 call to base::import, recursion: max depth 1, sum of overlapping time 845µs
32147µs28µs
# spent 6µs (5+2) within Class::Accessor::Fast::BEGIN@3 which was called: # once (5µs+2µs) by base::import at line 3
use strict;
# spent 6µs making 1 call to Class::Accessor::Fast::BEGIN@3 # spent 2µs making 1 call to strict::import
41300ns$Class::Accessor::Fast::VERSION = '0.34';
5
6
# spent 14µs within Class::Accessor::Fast::make_accessor which was called 10 times, avg 1µs/call: # 10 times (14µs+0s) by Class::Accessor::_mk_accessors at line 72 of Class/Accessor.pm, avg 1µs/call
sub make_accessor {
7101µs my($class, $field) = @_;
8
9 return sub {
10 return $_[0]->{$field} if scalar(@_) == 1;
11 return $_[0]->{$field} = scalar(@_) == 2 ? $_[1] : [@_[1..$#_]];
121019µs };
13}
14
15
16sub make_ro_accessor {
17 my($class, $field) = @_;
18
19 return sub {
20 return $_[0]->{$field} if @_ == 1;
21 my $caller = caller;
22 $_[0]->_croak("'$caller' cannot alter the value of '$field' on objects of class '$class'");
23 };
24}
25
26
27sub make_wo_accessor {
28 my($class, $field) = @_;
29
30 return sub {
31 if (@_ == 1) {
32 my $caller = caller;
33 $_[0]->_croak("'$caller' cannot access the value of '$field' on objects of class '$class'");
34 }
35 else {
36 return $_[0]->{$field} = $_[1] if @_ == 2;
37 return (shift)->{$field} = \@_;
38 }
39 };
40}
41
42
4312µs1;
44
45__END__