← 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/Iterator/NumberRangeIterator.pm
StatementsExecuted 51 statements in 392µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
21120µs20µsFoswiki::Iterator::NumberRangeIterator::::newFoswiki::Iterator::NumberRangeIterator::new
11113µs13µsFoswiki::Iterator::NumberRangeIterator::::BEGIN@12Foswiki::Iterator::NumberRangeIterator::BEGIN@12
42113µs13µsFoswiki::Iterator::NumberRangeIterator::::hasNextFoswiki::Iterator::NumberRangeIterator::hasNext
53212µs12µsFoswiki::Iterator::NumberRangeIterator::::nextFoswiki::Iterator::NumberRangeIterator::next
1119µs21µsFoswiki::Iterator::NumberRangeIterator::::BEGIN@15Foswiki::Iterator::NumberRangeIterator::BEGIN@15
1119µs13µsFoswiki::Iterator::NumberRangeIterator::::BEGIN@16Foswiki::Iterator::NumberRangeIterator::BEGIN@16
1119µs33µsFoswiki::Iterator::NumberRangeIterator::::BEGIN@17Foswiki::Iterator::NumberRangeIterator::BEGIN@17
1114µs4µsFoswiki::Iterator::NumberRangeIterator::::BEGIN@19Foswiki::Iterator::NumberRangeIterator::BEGIN@19
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;
12244µs113µs
# spent 13µs within Foswiki::Iterator::NumberRangeIterator::BEGIN@12 which was called: # once (13µs+0s) by Foswiki::Store::Rcs::Handler::BEGIN@44 at line 12
use Foswiki::Iterator;
# spent 13µs making 1 call to Foswiki::Iterator::NumberRangeIterator::BEGIN@12
1319µsour @ISA = ('Foswiki::Iterator');
14
15225µs233µs
# spent 21µs (9+12) within Foswiki::Iterator::NumberRangeIterator::BEGIN@15 which was called: # once (9µs+12µs) by Foswiki::Store::Rcs::Handler::BEGIN@44 at line 15
use strict;
# spent 21µs making 1 call to Foswiki::Iterator::NumberRangeIterator::BEGIN@15 # spent 12µs making 1 call to strict::import
16222µs217µs
# spent 13µs (9+4) within Foswiki::Iterator::NumberRangeIterator::BEGIN@16 which was called: # once (9µs+4µs) by Foswiki::Store::Rcs::Handler::BEGIN@44 at line 16
use warnings;
# spent 13µs making 1 call to Foswiki::Iterator::NumberRangeIterator::BEGIN@16 # spent 4µs making 1 call to warnings::import
17249µs258µs
# spent 33µs (9+25) within Foswiki::Iterator::NumberRangeIterator::BEGIN@17 which was called: # once (9µs+25µs) by Foswiki::Store::Rcs::Handler::BEGIN@44 at line 17
use Assert;
# spent 33µs making 1 call to Foswiki::Iterator::NumberRangeIterator::BEGIN@17 # spent 25µs making 1 call to Exporter::import
18
19
# spent 4µs within Foswiki::Iterator::NumberRangeIterator::BEGIN@19 which was called: # once (4µs+0s) by Foswiki::Store::Rcs::Handler::BEGIN@44 at line 24
BEGIN {
2017µs if ( $Foswiki::cfg{UseLocale} ) {
21 require locale;
22 import locale();
23 }
241171µs14µs}
# spent 4µs making 1 call to Foswiki::Iterator::NumberRangeIterator::BEGIN@19
25
26=begin TML
27
28---++ ClassMethod new($start, $end, $inc)
29Construct a new iterator from start to end step inc.
30The range is inclusive i.e. if $end == $start, you will get an iterator
31that returns a single value.
32
33The iteration step is the absolute value of $inc, and defaults to 1.
34
35=cut
36
37
# spent 20µs within Foswiki::Iterator::NumberRangeIterator::new which was called 2 times, avg 10µs/call: # 2 times (20µs+0s) by Foswiki::Store::Rcs::Handler::getRevisionHistory at line 493 of /var/www/foswikidev/core/lib/Foswiki/Store/Rcs/Handler.pm, avg 10µs/call
sub new {
3823µs my ( $class, $start, $end, $inc ) = @_;
392700ns $inc ||= 1;
40219µs return bless(
41 {
42 start => $start,
43 end => $end,
44 inc => ( $end > $start ) ? abs($inc) : -abs($inc),
45 cur => $start,
46 },
47 $class
48 );
49}
50
51
# spent 13µs within Foswiki::Iterator::NumberRangeIterator::hasNext which was called 4 times, avg 3µs/call: # 3 times (4µs+0s) by Foswiki::Iterator::all at line 93 of /var/www/foswikidev/core/lib/Foswiki/Iterator.pm, avg 2µs/call # once (9µs+0s) by Foswiki::Iterator::all at line 92 of /var/www/foswikidev/core/lib/Foswiki/Iterator.pm
sub hasNext {
5241µs my $this = shift;
5342µs if ( $this->{inc} > 0 ) {
54 return $this->{cur} <= $this->{end};
55 }
56 else {
57412µs return $this->{cur} >= $this->{end};
58 }
59}
60
61
# spent 12µs within Foswiki::Iterator::NumberRangeIterator::next which was called 5 times, avg 2µs/call: # 3 times (5µs+0s) by Foswiki::Iterator::all at line 93 of /var/www/foswikidev/core/lib/Foswiki/Iterator.pm, avg 2µs/call # once (4µs+0s) by Foswiki::UI::View::view at line 170 of /var/www/foswikidev/core/lib/Foswiki/UI/View.pm # once (2µs+0s) by Foswiki::UI::View::view at line 273 of /var/www/foswikidev/core/lib/Foswiki/UI/View.pm
sub next {
6251µs my $this = shift;
6352µs my $res = $this->{cur};
6452µs $this->{cur} += $this->{inc};
65514µs return $res;
66}
67
68
# spent 3µs within Foswiki::Iterator::NumberRangeIterator::reset which was called: # once (3µs+0s) by Foswiki::UI::View::view at line 272 of /var/www/foswikidev/core/lib/Foswiki/UI/View.pm
sub reset {
691600ns my $this = shift;
7014µs $this->{cur} = $this->{start};
71}
72
7313µs1;
74
75__END__