← Index
NYTProf Performance Profile   « line view »
For t/optimization.t
  Run on Thu Jan 8 22:47:42 2015
Reported on Thu Jan 8 22:48:06 2015

Filename/home/ss5/local/projects/data-dpath/lib/Data/DPath/Filters.pm
StatementsExecuted 23 statements in 584µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
11117µs33µsData::DPath::Filters::::BEGIN@4Data::DPath::Filters::BEGIN@4
11112µs22µsData::DPath::Filters::::BEGIN@44Data::DPath::Filters::BEGIN@44
11111µs76µsData::DPath::Filters::::BEGIN@9Data::DPath::Filters::BEGIN@9
11110µs23µsData::DPath::Filters::::BEGIN@26Data::DPath::Filters::BEGIN@26
11110µs20µsData::DPath::Filters::::BEGIN@51Data::DPath::Filters::BEGIN@51
11110µs15µsData::DPath::Filters::::BEGIN@5Data::DPath::Filters::BEGIN@5
11110µs25µsData::DPath::Filters::::BEGIN@8Data::DPath::Filters::BEGIN@8
1119µs18µsData::DPath::Filters::::BEGIN@58Data::DPath::Filters::BEGIN@58
1119µs36µsData::DPath::Filters::::BEGIN@7Data::DPath::Filters::BEGIN@7
2226µs6µsData::DPath::Filters::::valueData::DPath::Filters::value
0000s0sData::DPath::Filters::::affeData::DPath::Filters::affe
0000s0sData::DPath::Filters::::idxData::DPath::Filters::idx
0000s0sData::DPath::Filters::::is_reftypeData::DPath::Filters::is_reftype
0000s0sData::DPath::Filters::::isaData::DPath::Filters::isa
0000s0sData::DPath::Filters::::keyData::DPath::Filters::key
0000s0sData::DPath::Filters::::reftypeData::DPath::Filters::reftype
0000s0sData::DPath::Filters::::sizeData::DPath::Filters::size
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package Data::DPath::Filters;
2# ABSTRACT: Magic functions available inside filter conditions
3
4229µs249µs
# spent 33µs (17+16) within Data::DPath::Filters::BEGIN@4 which was called: # once (17µs+16µs) by Data::DPath::Context::BEGIN@12 at line 4
use strict;
# spent 33µs making 1 call to Data::DPath::Filters::BEGIN@4 # spent 16µs making 1 call to strict::import
5224µs220µs
# spent 15µs (10+5) within Data::DPath::Filters::BEGIN@5 which was called: # once (10µs+5µs) by Data::DPath::Context::BEGIN@12 at line 5
use warnings;
# spent 15µs making 1 call to Data::DPath::Filters::BEGIN@5 # spent 5µs making 1 call to warnings::import
6
7225µs263µs
# spent 36µs (9+27) within Data::DPath::Filters::BEGIN@7 which was called: # once (9µs+27µs) by Data::DPath::Context::BEGIN@12 at line 7
use Data::Dumper;
# spent 36µs making 1 call to Data::DPath::Filters::BEGIN@7 # spent 27µs making 1 call to Exporter::import
8235µs240µs
# spent 25µs (10+16) within Data::DPath::Filters::BEGIN@8 which was called: # once (10µs+16µs) by Data::DPath::Context::BEGIN@12 at line 8
use Scalar::Util;
# spent 25µs making 1 call to Data::DPath::Filters::BEGIN@8 # spent 16µs making 1 call to Exporter::import
9
# spent 76µs (11+65) within Data::DPath::Filters::BEGIN@9 which was called: # once (11µs+65µs) by Data::DPath::Context::BEGIN@12 at line 13
use constant {
1018µs165µs HASH => 'HASH',
# spent 65µs making 1 call to constant::import
11 ARRAY => 'ARRAY',
12 SCALAR => 'SCALAR',
13178µs176µs };
# spent 76µs making 1 call to Data::DPath::Filters::BEGIN@9
14
151200nsour $idx;
161100nsour $p; # current point
17
18sub affe {
19 return $_ eq 'affe' ? 1 : 0;
20}
21
22sub idx { $idx }
23
24sub size()
25{
262153µs235µs
# spent 23µs (10+12) within Data::DPath::Filters::BEGIN@26 which was called: # once (10µs+12µs) by Data::DPath::Context::BEGIN@12 at line 26
no warnings 'uninitialized';
# spent 23µs making 1 call to Data::DPath::Filters::BEGIN@26 # spent 12µs making 1 call to warnings::unimport
27
28 return -1 unless defined $_;
29 # speed optimization: first try faster ref, then reftype
30 # ref
31 return scalar @$_ if ref $_ eq ARRAY;
32 return scalar keys %$_ if ref $_ eq HASH;
33 return 1 if ref \$_ eq SCALAR;
34 # reftype
35 return scalar @$_ if Scalar::Util::reftype $_ eq ARRAY;
36 return scalar keys %$_ if Scalar::Util::reftype $_ eq HASH;
37 return 1 if Scalar::Util::reftype \$_ eq SCALAR;
38 # else
39 return -1;
40}
41
42sub key()
43{
44267µs233µs
# spent 22µs (12+10) within Data::DPath::Filters::BEGIN@44 which was called: # once (12µs+10µs) by Data::DPath::Context::BEGIN@12 at line 44
no warnings 'uninitialized';
# spent 22µs making 1 call to Data::DPath::Filters::BEGIN@44 # spent 10µs making 1 call to warnings::unimport
45 my $attrs = defined $p->attrs ? $p->attrs : {};
46 return $attrs->{key};
47}
48
49sub value()
50
# spent 6µs within Data::DPath::Filters::value which was called 2 times, avg 3µs/call: # once (3µs+0s) by main::__ANON__[(eval 67)[/home/ss5/perl5/perlbrew/perls/tapper-perl/lib/5.16.3/Safe.pm:23]:1] at line 1 of (eval 68)[(eval 67)[Safe.pm:23]:1] # once (2µs+0s) by main::__ANON__[(eval 55)[/home/ss5/perl5/perlbrew/perls/tapper-perl/lib/5.16.3/Safe.pm:23]:1] at line 1 of (eval 56)[(eval 55)[Safe.pm:23]:1]
{
51252µs229µs
# spent 20µs (10+10) within Data::DPath::Filters::BEGIN@51 which was called: # once (10µs+10µs) by Data::DPath::Context::BEGIN@12 at line 51
no warnings 'uninitialized';
# spent 20µs making 1 call to Data::DPath::Filters::BEGIN@51 # spent 10µs making 1 call to warnings::unimport
52214µs return $_;
53}
54
55sub isa($) {
56 my ($classname) = @_;
57
58296µs227µs
# spent 18µs (9+9) within Data::DPath::Filters::BEGIN@58 which was called: # once (9µs+9µs) by Data::DPath::Context::BEGIN@12 at line 58
no warnings 'uninitialized';
# spent 18µs making 1 call to Data::DPath::Filters::BEGIN@58 # spent 9µs making 1 call to warnings::unimport
59 #print STDERR "*** value ", Dumper($_ ? $_ : "UNDEF");
60 return $_->isa($classname) if Scalar::Util::blessed $_;
61 return undef;
62}
63
64sub reftype() {
65 return Scalar::Util::reftype($_);
66}
67
68sub is_reftype($) {
69 return (Scalar::Util::reftype($_) eq shift);
70}
71
7213µs1;
73
74__END__