← Index
NYTProf Performance Profile   « line view »
For bin/benchmark-perlformance
  Run on Fri Apr 17 15:31:48 2015
Reported on Fri Apr 17 15:32:02 2015

Filename/home/ss5/perl5/perlbrew/perls/tapper-perl/lib/site_perl/5.16.3/x86_64-linux/Data/Structure/Util.pm
StatementsExecuted 22 statements in 843µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1111.93ms5.89msData::Structure::Util::::BEGIN@8Data::Structure::Util::BEGIN@8
111770µs1.17msData::Structure::Util::::BEGIN@9Data::Structure::Util::BEGIN@9
11134µs34µsData::Structure::Util::::unbless_xsData::Structure::Util::unbless_xs (xsub)
11128µs28µsData::Structure::Util::::bootstrapData::Structure::Util::bootstrap (xsub)
11119µs53µsData::Structure::Util::::unblessData::Structure::Util::unbless
11117µs17µsData::Structure::Util::::BEGIN@3Data::Structure::Util::BEGIN@3
1118µs60µsData::Structure::Util::::BEGIN@7Data::Structure::Util::BEGIN@7
1117µs81µsData::Structure::Util::::BEGIN@6Data::Structure::Util::BEGIN@6
1117µs18µsData::Structure::Util::::BEGIN@5Data::Structure::Util::BEGIN@5
0000s0sData::Structure::Util::::_utf8_offData::Structure::Util::_utf8_off
0000s0sData::Structure::Util::::_utf8_onData::Structure::Util::_utf8_on
0000s0sData::Structure::Util::::circular_offData::Structure::Util::circular_off
0000s0sData::Structure::Util::::get_blessedData::Structure::Util::get_blessed
0000s0sData::Structure::Util::::get_refsData::Structure::Util::get_refs
0000s0sData::Structure::Util::::has_circular_refData::Structure::Util::has_circular_ref
0000s0sData::Structure::Util::::has_utf8Data::Structure::Util::has_utf8
0000s0sData::Structure::Util::::signatureData::Structure::Util::signature
0000s0sData::Structure::Util::::utf8_offData::Structure::Util::utf8_off
0000s0sData::Structure::Util::::utf8_onData::Structure::Util::utf8_on
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package Data::Structure::Util;
2
3243µs117µs
# spent 17µs within Data::Structure::Util::BEGIN@3 which was called: # once (17µs+0s) by Benchmark::Perl::Formance::BEGIN@12 at line 3
use 5.008;
# spent 17µs making 1 call to Data::Structure::Util::BEGIN@3
4
5219µs229µs
# spent 18µs (7+11) within Data::Structure::Util::BEGIN@5 which was called: # once (7µs+11µs) by Benchmark::Perl::Formance::BEGIN@12 at line 5
use strict;
# spent 18µs making 1 call to Data::Structure::Util::BEGIN@5 # spent 11µs making 1 call to strict::import
6226µs2155µs
# spent 81µs (7+74) within Data::Structure::Util::BEGIN@6 which was called: # once (7µs+74µs) by Benchmark::Perl::Formance::BEGIN@12 at line 6
use warnings::register;
# spent 81µs making 1 call to Data::Structure::Util::BEGIN@6 # spent 74µs making 1 call to warnings::register::import
7222µs2112µs
# spent 60µs (8+52) within Data::Structure::Util::BEGIN@7 which was called: # once (8µs+52µs) by Benchmark::Perl::Formance::BEGIN@12 at line 7
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
# spent 60µs making 1 call to Data::Structure::Util::BEGIN@7 # spent 52µs making 1 call to vars::import
82133µs25.97ms
# spent 5.89ms (1.93+3.96) within Data::Structure::Util::BEGIN@8 which was called: # once (1.93ms+3.96ms) by Benchmark::Perl::Formance::BEGIN@12 at line 8
use Storable qw( freeze );
# spent 5.89ms making 1 call to Data::Structure::Util::BEGIN@8 # spent 79µs making 1 call to Exporter::import
92399µs21.21ms
# spent 1.17ms (770µs+398µs) within Data::Structure::Util::BEGIN@9 which was called: # once (770µs+398µs) by Benchmark::Perl::Formance::BEGIN@12 at line 9
use Digest::MD5 qw( md5_hex );
# spent 1.17ms making 1 call to Data::Structure::Util::BEGIN@9 # spent 42µs making 1 call to Exporter::import
10
111600nsrequire Exporter;
12162µsrequire DynaLoader;
13159µsrequire AutoLoader;
14
1519µs@ISA = qw( Exporter DynaLoader );
16
171400ns$VERSION = '0.15';
18
1911µs@EXPORT_OK = qw(
20 unbless get_blessed get_refs has_circular_ref circular_off signature
21);
22
2312µsif ( $] >= 5.008 ) {
24 push @EXPORT_OK, qw(
25 has_utf8 utf8_off utf8_on _utf8_on _utf8_off
26 );
27}
28
2915µs1194µsbootstrap Data::Structure::Util $VERSION;
# spent 194µs making 1 call to DynaLoader::bootstrap
30
31sub has_utf8 {
32 has_utf8_xs( $_[0] ) ? $_[0] : undef;
33}
34
35sub utf8_off {
36 utf8_off_xs( $_[0] ) ? $_[0] : undef;
37}
38
39sub utf8_on {
40 utf8_on_xs( $_[0] ) ? $_[0] : undef;
41}
42
43sub _utf8_off {
44 _utf8_off_xs( $_[0] ) ? $_[0] : undef;
45}
46
47sub _utf8_on {
48 _utf8_on_xs( $_[0] ) ? $_[0] : undef;
49}
50
51
# spent 53µs (19+34) within Data::Structure::Util::unbless which was called: # once (19µs+34µs) by Benchmark::Perl::Formance::run at line 664 of lib/Benchmark/Perl/Formance.pm
sub unbless {
52154µs134µs unbless_xs( $_[0] );
# spent 34µs making 1 call to Data::Structure::Util::unbless_xs
53}
54
55sub get_blessed {
56 $_[0] or return [];
57 get_blessed_xs( $_[0] );
58}
59
60sub get_refs {
61 $_[0] or return [];
62 get_refs_xs( $_[0] );
63}
64
65sub has_circular_ref {
66 $_[0] or return $_[0];
67 has_circular_ref_xs( $_[0] );
68}
69
70# Need to hold another reference to the passed in value to avoid this
71# pathological case throwing an error
72# my $obj8 = [];
73# $obj8->[0] = \$obj8;
74# circular_off($obj8); # Used to throw an error
75
76sub circular_off {
77 my $r = $_[0];
78 $r or return $r;
79 circular_off_xs( $r );
80}
81
82sub signature {
83 return @_
84 ? md5_hex( freeze( [ $_[0], signature_xs( $_[0] ) ] ) )
85 : '0' x 32;
86}
87
8816µs1;
89
90__END__
 
# spent 28µs within Data::Structure::Util::bootstrap which was called: # once (28µs+0s) by DynaLoader::bootstrap at line 213 of DynaLoader.pm
sub Data::Structure::Util::bootstrap; # xsub
# spent 34µs within Data::Structure::Util::unbless_xs which was called: # once (34µs+0s) by Data::Structure::Util::unbless at line 52
sub Data::Structure::Util::unbless_xs; # xsub