← Index
NYTProf Performance Profile   « block view • line view • sub view »
For bin/dpath
  Run on Tue Jun 5 15:31:33 2012
Reported on Tue Jun 5 15:31:48 2012

Filename/home/ss5/perl5/perlbrew/perls/perl-5.14.1/lib/site_perl/5.14.1/x86_64-linux-thread-multi/Class/XSAccessor/Heavy.pm
StatementsExecuted 175 statements in 2.58ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1622587µs959µsClass::XSAccessor::Heavy::::check_sub_existenceClass::XSAccessor::Heavy::check_sub_existence
1611372µs372µsClass::XSAccessor::Heavy::::CORE:substClass::XSAccessor::Heavy::CORE:subst (opcode)
11169µs69µsClass::XSAccessor::Heavy::::BEGIN@4Class::XSAccessor::Heavy::BEGIN@4
11137µs48µsClass::XSAccessor::Heavy::::BEGIN@5Class::XSAccessor::Heavy::BEGIN@5
11132µs84µsClass::XSAccessor::Heavy::::BEGIN@27Class::XSAccessor::Heavy::BEGIN@27
11130µs81µsClass::XSAccessor::Heavy::::BEGIN@30Class::XSAccessor::Heavy::BEGIN@30
11130µs175µsClass::XSAccessor::Heavy::::BEGIN@7Class::XSAccessor::Heavy::BEGIN@7
11127µs47µsClass::XSAccessor::Heavy::::BEGIN@6Class::XSAccessor::Heavy::BEGIN@6
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package # hide from PAUSE
2 Class::XSAccessor::Heavy;
3
42173µs169µs
# spent 69µs within Class::XSAccessor::Heavy::BEGIN@4 which was called: # once (69µs+0s) by Class::XSAccessor::BEGIN@6 at line 4
use 5.008;
# spent 69µs making 1 call to Class::XSAccessor::Heavy::BEGIN@4
5290µs260µs
# spent 48µs (37+12) within Class::XSAccessor::Heavy::BEGIN@5 which was called: # once (37µs+12µs) by Class::XSAccessor::BEGIN@6 at line 5
use strict;
# spent 48µs making 1 call to Class::XSAccessor::Heavy::BEGIN@5 # spent 12µs making 1 call to strict::import
6288µs267µs
# spent 47µs (27+20) within Class::XSAccessor::Heavy::BEGIN@6 which was called: # once (27µs+20µs) by Class::XSAccessor::BEGIN@6 at line 6
use warnings;
# spent 47µs making 1 call to Class::XSAccessor::Heavy::BEGIN@6 # spent 20µs making 1 call to warnings::import
72605µs2320µs
# spent 175µs (30+145) within Class::XSAccessor::Heavy::BEGIN@7 which was called: # once (30µs+145µs) by Class::XSAccessor::BEGIN@6 at line 7
use Carp;
# spent 175µs making 1 call to Class::XSAccessor::Heavy::BEGIN@7 # spent 145µs making 1 call to Exporter::import
8
912µsour $VERSION = '1.13';
1014µsour @CARP_NOT = qw(
11 Class::XSAccessor
12 Class::XSAccessor::Array
13);
14
15# TODO Move more duplicated code from XSA and XSA::Array here
16
17
18
# spent 959µs (587+372) within Class::XSAccessor::Heavy::check_sub_existence which was called 16 times, avg 60µs/call: # 9 times (339µs+257µs) by Class::XSAccessor::_generate_method at line 79 of Class/XSAccessor.pm, avg 66µs/call # 7 times (248µs+115µs) by Class::XSAccessor::Array::_generate_method at line 61 of Class/XSAccessor/Array.pm, avg 52µs/call
sub check_sub_existence {
191623µs my $subname = shift;
20
211616µs my $sub_package = $subname;
2216539µs16372µs $sub_package =~ s/([^:]+)$// or die;
# spent 372µs making 16 calls to Class::XSAccessor::Heavy::CORE:subst, avg 23µs/call
231673µs my $bare_subname = $1;
24
25168µs my $sym;
26 {
2718192µs2137µs
# spent 84µs (32+52) within Class::XSAccessor::Heavy::BEGIN@27 which was called: # once (32µs+52µs) by Class::XSAccessor::BEGIN@6 at line 27
no strict 'refs';
# spent 84µs making 1 call to Class::XSAccessor::Heavy::BEGIN@27 # spent 52µs making 1 call to strict::unimport
281693µs $sym = \%{"$sub_package"};
29 }
302419µs2131µs
# spent 81µs (30+50) within Class::XSAccessor::Heavy::BEGIN@30 which was called: # once (30µs+50µs) by Class::XSAccessor::BEGIN@6 at line 30
no warnings;
# spent 81µs making 1 call to Class::XSAccessor::Heavy::BEGIN@30 # spent 50µs making 1 call to warnings::unimport
311655µs local *s = $sym->{$bare_subname};
321619µs my $coderef = *s{CODE};
3316163µs if ($coderef) {
34 $sub_package =~ s/::$//;
35 Carp::croak("Cannot replace existing subroutine '$bare_subname' in package '$sub_package' with an XS implementation. If you wish to force a replacement, add the 'replace => 1' parameter to the arguments of 'use ".(caller())[0]."'.");
36 }
37}
38
39114µs1;
40
41__END__
 
# spent 372µs within Class::XSAccessor::Heavy::CORE:subst which was called 16 times, avg 23µs/call: # 16 times (372µs+0s) by Class::XSAccessor::Heavy::check_sub_existence at line 22, avg 23µs/call
sub Class::XSAccessor::Heavy::CORE:subst; # opcode