← Index
NYTProf Performance Profile   « line view »
For ./view
  Run on Fri Jul 31 18:42:36 2015
Reported on Fri Jul 31 18:48:15 2015

Filename/var/www/foswikidev/core/lib/Foswiki/Query/OP_length.pm
StatementsExecuted 14 statements in 226µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
31135µs69µsFoswiki::Query::OP_length::::newFoswiki::Query::OP_length::new
11112µs24µsFoswiki::Query::OP_length::::BEGIN@11Foswiki::Query::OP_length::BEGIN@11
1119µs12µsFoswiki::Query::OP_length::::BEGIN@12Foswiki::Query::OP_length::BEGIN@12
1113µs3µsFoswiki::Query::OP_length::::BEGIN@14Foswiki::Query::OP_length::BEGIN@14
0000s0sFoswiki::Query::OP_length::::evaluateFoswiki::Query::OP_length::evaluate
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1# See bottom of file for license and copyright information
2
3=begin TML
4
5---+ package Foswiki::Query::OP_length
6
7=cut
8
9package Foswiki::Query::OP_length;
10
11225µs236µs
# spent 24µs (12+12) within Foswiki::Query::OP_length::BEGIN@11 which was called: # once (12µs+12µs) by Foswiki::Query::Parser::BEGIN@66 at line 11
use strict;
# spent 24µs making 1 call to Foswiki::Query::OP_length::BEGIN@11 # spent 12µs making 1 call to strict::import
12223µs216µs
# spent 12µs (9+4) within Foswiki::Query::OP_length::BEGIN@12 which was called: # once (9µs+4µs) by Foswiki::Query::Parser::BEGIN@66 at line 12
use warnings;
# spent 12µs making 1 call to Foswiki::Query::OP_length::BEGIN@12 # spent 4µs making 1 call to warnings::import
13
142138µs13µs
# spent 3µs within Foswiki::Query::OP_length::BEGIN@14 which was called: # once (3µs+0s) by Foswiki::Query::Parser::BEGIN@66 at line 14
use Foswiki::Query::UnaryOP ();
# spent 3µs making 1 call to Foswiki::Query::OP_length::BEGIN@14
1516µsour @ISA = ('Foswiki::Query::UnaryOP');
16
17
# spent 69µs (35+34) within Foswiki::Query::OP_length::new which was called 3 times, avg 23µs/call: # 3 times (35µs+34µs) by Foswiki::Query::Parser::new at line 112 of /var/www/foswikidev/core/lib/Foswiki/Query/Parser.pm, avg 23µs/call
sub new {
1832µs my $class = shift;
19330µs334µs return $class->SUPER::new( name => 'length', prec => 1000 );
# spent 34µs making 3 calls to Foswiki::Query::UnaryOP::new, avg 11µs/call
20}
21
22sub evaluate {
23 my $this = shift;
24 my $node = shift;
25 my $a = $node->{params}[0];
26 my $val = $a->evaluate(@_) || '';
27 return 0 unless defined $val;
28 if ( ref($val) eq 'ARRAY' ) {
29 return scalar(@$val);
30 }
31 elsif ( ref($val) eq 'HASH' ) {
32 return scalar( keys %$val );
33 }
34 elsif ( !ref($val) ) {
35 return length($val);
36 }
37 return 1;
38}
39
4013µs1;
41__END__