← Index
NYTProf Performance Profile   « block view • line view • sub view »
For /usr/local/src/github.com/foswiki/core/bin/view
  Run on Sun Dec 4 17:17:59 2011
Reported on Sun Dec 4 17:26:35 2011

Filename/usr/local/src/github.com/foswiki/core/lib/Foswiki/Query/OP_plus.pm
StatementsExecuted 14 statements in 450µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
31170µs108µsFoswiki::Query::OP_plus::::newFoswiki::Query::OP_plus::new
11153µs70µsFoswiki::Query::OP_plus::::BEGIN@12Foswiki::Query::OP_plus::BEGIN@12
11128µs35µsFoswiki::Query::OP_plus::::BEGIN@11Foswiki::Query::OP_plus::BEGIN@11
11110µs10µsFoswiki::Query::OP_plus::::BEGIN@14Foswiki::Query::OP_plus::BEGIN@14
0000s0sFoswiki::Query::OP_plus::::evaluateFoswiki::Query::OP_plus::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_plus
6
7=cut
8
9package Foswiki::Query::OP_plus;
10
11245µs243µs
# spent 35µs (28+7) within Foswiki::Query::OP_plus::BEGIN@11 which was called: # once (28µs+7µs) by Foswiki::Query::Parser::BEGIN@45 at line 11
use strict;
# spent 35µs making 1 call to Foswiki::Query::OP_plus::BEGIN@11 # spent 8µs making 1 call to strict::import
12246µs288µs
# spent 70µs (53+18) within Foswiki::Query::OP_plus::BEGIN@12 which was called: # once (53µs+18µs) by Foswiki::Query::Parser::BEGIN@45 at line 12
use warnings;
# spent 70µs making 1 call to Foswiki::Query::OP_plus::BEGIN@12 # spent 18µs making 1 call to warnings::import
13
142284µs110µs
# spent 10µs within Foswiki::Query::OP_plus::BEGIN@14 which was called: # once (10µs+0s) by Foswiki::Query::Parser::BEGIN@45 at line 14
use Foswiki::Query::OP ();
# spent 10µs making 1 call to Foswiki::Query::OP_plus::BEGIN@14
1519µsour @ISA = ('Foswiki::Query::OP');
16
17
# spent 108µs (70+39) within Foswiki::Query::OP_plus::new which was called 3 times, avg 36µs/call: # 3 times (70µs+39µs) by Foswiki::Query::Parser::new at line 105 of /usr/local/src/github.com/foswiki/core/lib/Foswiki/Query/Parser.pm, avg 36µs/call
sub new {
18661µs my $class = shift;
19339µs return $class->SUPER::new( arity => 2, name => '+', prec => 600 );
# spent 39µs making 3 calls to Foswiki::Query::OP::new, avg 13µs/call
20}
21
22sub evaluate {
23 my $this = shift;
24 my $node = shift;
25 my $a = $node->{params}[0]->evaluate(@_);
26 my $b = $node->{params}[1]->evaluate(@_);
27 if ( defined $a
28 and Foswiki::Query::OP::isNumber($a)
29 and defined $b
30 and Foswiki::Query::OP::isNumber($b) )
31 {
32 return $a + $b;
33 }
34 else {
35 my $result;
36
37 if ( defined $a ) {
38 if ( defined $b ) {
39 $result = $a . $b;
40 }
41 else {
42 $result = $a;
43 }
44 }
45 elsif ( defined $b ) {
46 $result = $b;
47 }
48
49 return $result;
50 }
51}
52
5316µs1;
54__END__