← Index
NYTProf Performance Profile   « line view »
For ./view
  Run on Fri Jul 31 19:05:14 2015
Reported on Fri Jul 31 19:08:09 2015

Filename/var/www/foswiki11/lib/Foswiki/Iterator/NumberRangeIterator.pm
StatementsExecuted 50 statements in 389µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
21151µs51µsFoswiki::Iterator::NumberRangeIterator::::newFoswiki::Iterator::NumberRangeIterator::new
53215µs15µsFoswiki::Iterator::NumberRangeIterator::::nextFoswiki::Iterator::NumberRangeIterator::next
11114µs14µsFoswiki::Iterator::NumberRangeIterator::::BEGIN@12Foswiki::Iterator::NumberRangeIterator::BEGIN@12
42111µs11µsFoswiki::Iterator::NumberRangeIterator::::hasNextFoswiki::Iterator::NumberRangeIterator::hasNext
1119µs15µsFoswiki::Iterator::NumberRangeIterator::::BEGIN@16Foswiki::Iterator::NumberRangeIterator::BEGIN@16
1118µs23µsFoswiki::Iterator::NumberRangeIterator::::BEGIN@17Foswiki::Iterator::NumberRangeIterator::BEGIN@17
1118µs21µsFoswiki::Iterator::NumberRangeIterator::::BEGIN@15Foswiki::Iterator::NumberRangeIterator::BEGIN@15
1113µs3µsFoswiki::Iterator::NumberRangeIterator::::resetFoswiki::Iterator::NumberRangeIterator::reset
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::Iterator::NumberRangeIterator
6
7Iterator over a range of integer values, with programmable increment.
8
9=cut
10
11package Foswiki::Iterator::NumberRangeIterator;
12241µs114µs
# spent 14µs within Foswiki::Iterator::NumberRangeIterator::BEGIN@12 which was called: # once (14µs+0s) by Foswiki::Store::VC::Handler::BEGIN@38 at line 12
use Foswiki::Iterator;
# spent 14µs making 1 call to Foswiki::Iterator::NumberRangeIterator::BEGIN@12
1317µsour @ISA = ('Foswiki::Iterator');
14
15225µs234µs
# spent 21µs (8+13) within Foswiki::Iterator::NumberRangeIterator::BEGIN@15 which was called: # once (8µs+13µs) by Foswiki::Store::VC::Handler::BEGIN@38 at line 15
use strict;
# spent 21µs making 1 call to Foswiki::Iterator::NumberRangeIterator::BEGIN@15 # spent 13µs making 1 call to strict::import
16223µs220µs
# spent 15µs (9+5) within Foswiki::Iterator::NumberRangeIterator::BEGIN@16 which was called: # once (9µs+5µs) by Foswiki::Store::VC::Handler::BEGIN@38 at line 16
use warnings;
# spent 15µs making 1 call to Foswiki::Iterator::NumberRangeIterator::BEGIN@16 # spent 5µs making 1 call to warnings::import
172176µs237µs
# spent 23µs (8+14) within Foswiki::Iterator::NumberRangeIterator::BEGIN@17 which was called: # once (8µs+14µs) by Foswiki::Store::VC::Handler::BEGIN@38 at line 17
use Assert;
# spent 23µs making 1 call to Foswiki::Iterator::NumberRangeIterator::BEGIN@17 # spent 14µs making 1 call to Assert::import
18
19=begin TML
20
21---++ ClassMethod new($start, $end, $inc)
22Construct a new iterator from start to end step inc.
23The range is inclusive i.e. if $end == $start, you will get an iterator
24that returns a single value.
25
26The iteration step is the absolute value of $inc, and defaults to 1.
27
28=cut
29
30
# spent 51µs within Foswiki::Iterator::NumberRangeIterator::new which was called 2 times, avg 25µs/call: # 2 times (51µs+0s) by Foswiki::Store::VC::Handler::getRevisionHistory at line 434 of /var/www/foswiki11/lib/Foswiki/Store/VC/Handler.pm, avg 25µs/call
sub new {
3126µs my ( $class, $start, $end, $inc ) = @_;
3221µs $inc ||= 1;
33246µs return bless(
34 {
35 start => $start,
36 end => $end,
37 inc => ( $end > $start ) ? abs($inc) : -abs($inc),
38 cur => $start,
39 },
40 $class
41 );
42}
43
44
# spent 11µs within Foswiki::Iterator::NumberRangeIterator::hasNext which was called 4 times, avg 3µs/call: # 3 times (5µs+0s) by Foswiki::Iterator::all at line 86 of /var/www/foswiki11/lib/Foswiki/Iterator.pm, avg 2µs/call # once (6µs+0s) by Foswiki::Iterator::all at line 85 of /var/www/foswiki11/lib/Foswiki/Iterator.pm
sub hasNext {
4541µs my $this = shift;
4642µs if ( $this->{inc} > 0 ) {
47 return $this->{cur} <= $this->{end};
48 }
49 else {
50417µs return $this->{cur} >= $this->{end};
51 }
52}
53
54
# spent 15µs within Foswiki::Iterator::NumberRangeIterator::next which was called 5 times, avg 3µs/call: # 3 times (8µs+0s) by Foswiki::Iterator::all at line 86 of /var/www/foswiki11/lib/Foswiki/Iterator.pm, avg 3µs/call # once (4µs+0s) by Foswiki::UI::View::view at line 132 of /var/www/foswiki11/lib/Foswiki/UI/View.pm # once (3µs+0s) by Foswiki::UI::View::view at line 220 of /var/www/foswiki11/lib/Foswiki/UI/View.pm
sub next {
5551µs my $this = shift;
5652µs my $res = $this->{cur};
5754µs $this->{cur} += $this->{inc};
58517µs return $res;
59}
60
61
# spent 3µs within Foswiki::Iterator::NumberRangeIterator::reset which was called: # once (3µs+0s) by Foswiki::UI::View::view at line 219 of /var/www/foswiki11/lib/Foswiki/UI/View.pm
sub reset {
621900ns my $this = shift;
63113µs $this->{cur} = $this->{start};
64}
65
6613µs1;
67
68__END__