summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2000-09-07 11:03:20 -0400
committerJarkko Hietaniemi <jhi@iki.fi>2000-09-08 14:14:18 +0000
commitc5d572932fd269096c2a3545999d11f5ab9563b7 (patch)
treee67431e043261d9e84992b7a5018bae6d4984b5e /lib
parent3049cdab56e66ab4bbd72677e85fd044945cc99d (diff)
downloadperl-c5d572932fd269096c2a3545999d11f5ab9563b7.tar.gz
Message-ID: <20000907190320.888.qmail@foad.org>
p4raw-id: //depot/perl@7038
Diffstat (limited to 'lib')
-rw-r--r--lib/Benchmark.pm5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/Benchmark.pm b/lib/Benchmark.pm
index 3c10a5bc52..b557be3cc7 100644
--- a/lib/Benchmark.pm
+++ b/lib/Benchmark.pm
@@ -552,7 +552,9 @@ sub countit {
# accuracy since we're not couting these times.
$n = int( $tpra * 1.05 * $n / $tc ); # Linear approximation.
my $td = timeit($n, $code);
- $tc = $td->[1] + $td->[2];
+ my $new_tc = $td->[1] + $td->[2];
+ # Make sure we are making progress.
+ $tc = $new_tc > 1.2 * $tc ? $new_tc : 1.2 * $tc;
}
# Now, do the 'for real' timing(s), repeating until we exceed
@@ -581,6 +583,7 @@ sub countit {
$ttot = $utot + $stot;
last if $ttot >= $tmax;
+ $ttot = 0.01 if $ttot < 0.01;
my $r = $tmax / $ttot - 1; # Linear approximation.
$n = int( $r * $ntot );
$n = $nmin if $n < $nmin;