← Index
NYTProf Performance Profile   « line view »
For fastest.pl
  Run on Fri Jan 31 20:48:16 2014
Reported on Fri Jan 31 20:49:42 2014

Filename/opt/perl-5.18.1/lib/site_perl/5.18.1/darwin-thread-multi-2level/Class/XSAccessor/Heavy.pm
StatementsExecuted 35 statements in 491µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
21122µs32µsClass::XSAccessor::Heavy::::check_sub_existenceClass::XSAccessor::Heavy::check_sub_existence
11120µs20µsClass::XSAccessor::Heavy::::BEGIN@4Class::XSAccessor::Heavy::BEGIN@4
11114µs29µsClass::XSAccessor::Heavy::::BEGIN@5Class::XSAccessor::Heavy::BEGIN@5
11111µs23µsClass::XSAccessor::Heavy::::BEGIN@30Class::XSAccessor::Heavy::BEGIN@30
11110µs52µsClass::XSAccessor::Heavy::::BEGIN@7Class::XSAccessor::Heavy::BEGIN@7
21110µs10µsClass::XSAccessor::Heavy::::CORE:substClass::XSAccessor::Heavy::CORE:subst (opcode)
11110µs24µsClass::XSAccessor::Heavy::::BEGIN@27Class::XSAccessor::Heavy::BEGIN@27
1119µs14µ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
4256µs120µs
# spent 20µs within Class::XSAccessor::Heavy::BEGIN@4 which was called: # once (20µs+0s) by Class::XSAccessor::BEGIN@6 at line 4
use 5.008;
# spent 20µs making 1 call to Class::XSAccessor::Heavy::BEGIN@4
5232µs244µs
# spent 29µs (14+16) within Class::XSAccessor::Heavy::BEGIN@5 which was called: # once (14µs+16µs) by Class::XSAccessor::BEGIN@6 at line 5
use strict;
# spent 29µs making 1 call to Class::XSAccessor::Heavy::BEGIN@5 # spent 16µs making 1 call to strict::import
6237µs219µs
# spent 14µs (9+5) within Class::XSAccessor::Heavy::BEGIN@6 which was called: # once (9µs+5µs) by Class::XSAccessor::BEGIN@6 at line 6
use warnings;
# spent 14µs making 1 call to Class::XSAccessor::Heavy::BEGIN@6 # spent 5µs making 1 call to warnings::import
72140µs293µs
# spent 52µs (10+41) within Class::XSAccessor::Heavy::BEGIN@7 which was called: # once (10µs+41µs) by Class::XSAccessor::BEGIN@6 at line 7
use Carp;
# spent 52µs making 1 call to Class::XSAccessor::Heavy::BEGIN@7 # spent 41µs making 1 call to Exporter::import
8
91800nsour $VERSION = '1.19';
1011µ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 32µs (22+10) within Class::XSAccessor::Heavy::check_sub_existence which was called 2 times, avg 16µs/call: # 2 times (22µs+10µs) by Class::XSAccessor::_generate_method at line 83 of Class/XSAccessor.pm, avg 16µs/call
sub check_sub_existence {
192600ns my $subname = shift;
20
212400ns my $sub_package = $subname;
22217µs210µs $sub_package =~ s/([^:]+)$// or die;
# spent 10µs making 2 calls to Class::XSAccessor::Heavy::CORE:subst, avg 5µs/call
2322µs my $bare_subname = $1;
24
252200ns my $sym;
26 {
27449µs238µs
# spent 24µs (10+14) within Class::XSAccessor::Heavy::BEGIN@27 which was called: # once (10µs+14µs) by Class::XSAccessor::BEGIN@6 at line 27
no strict 'refs';
# spent 24µs making 1 call to Class::XSAccessor::Heavy::BEGIN@27 # spent 14µs making 1 call to strict::unimport
2824µs $sym = \%{"$sub_package"};
29 }
302137µs235µs
# spent 23µs (11+12) within Class::XSAccessor::Heavy::BEGIN@30 which was called: # once (11µs+12µs) by Class::XSAccessor::BEGIN@6 at line 30
no warnings;
# spent 23µs making 1 call to Class::XSAccessor::Heavy::BEGIN@30 # spent 12µs making 1 call to warnings::unimport
3121µs local *s = $sym->{$bare_subname};
322800ns my $coderef = *s{CODE};
3327µ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
3914µs1;
40
41__END__
 
# spent 10µs within Class::XSAccessor::Heavy::CORE:subst which was called 2 times, avg 5µs/call: # 2 times (10µs+0s) by Class::XSAccessor::Heavy::check_sub_existence at line 22, avg 5µs/call
sub Class::XSAccessor::Heavy::CORE:subst; # opcode