fix(bench): use total time when measuring wavg (#20862)

This commit is contained in:
Nayeem Rahman 2023-10-10 14:40:36 +01:00 committed by GitHub
parent 6450334f5b
commit 0606c11403
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 4 additions and 10 deletions

View file

@ -982,20 +982,17 @@ async function benchMeasure(timeBudget, fn, async, context) {
fn(context);
const t2 = benchNow();
const totalTime = t2 - t1;
let measuredTime = totalTime;
if (currentBenchUserExplicitStart !== null) {
measuredTime -= currentBenchUserExplicitStart - t1;
currentBenchUserExplicitStart = null;
usedExplicitTimers = true;
}
if (currentBenchUserExplicitEnd !== null) {
measuredTime -= t2 - currentBenchUserExplicitEnd;
currentBenchUserExplicitEnd = null;
usedExplicitTimers = true;
}
c++;
wavg += measuredTime;
wavg += totalTime;
budget -= totalTime;
}
} else {
@ -1004,20 +1001,17 @@ async function benchMeasure(timeBudget, fn, async, context) {
await fn(context);
const t2 = benchNow();
const totalTime = t2 - t1;
let measuredTime = totalTime;
if (currentBenchUserExplicitStart !== null) {
measuredTime -= currentBenchUserExplicitStart - t1;
currentBenchUserExplicitStart = null;
usedExplicitTimers = true;
}
if (currentBenchUserExplicitEnd !== null) {
measuredTime -= t2 - currentBenchUserExplicitEnd;
currentBenchUserExplicitEnd = null;
usedExplicitTimers = true;
}
c++;
wavg += measuredTime;
wavg += totalTime;
budget -= totalTime;
}
}

View file

@ -6,4 +6,4 @@ benchmark time (avg) iter/s (min … max)
----------------------------------------------------------------------------- -----------------------------
noop with start and end [WILDCARD] [WILDCARD]/iter[WILDCARD]([WILDCARD] … [WILDCARD]) [WILDCARD]
Warning: start() and end() calls in "noop with start and end" are ignored because it averages less
than 0.01s per iteration. Remove them for better results.
than 10µs per iteration. Remove them for better results.

View file

@ -237,7 +237,7 @@ impl BenchReporter for ConsoleReporter {
);
if !stats.high_precision && stats.used_explicit_timers {
println!("{}", colors::yellow(format!("Warning: start() and end() calls in \"{}\" are ignored because it averages less\nthan 0.01s per iteration. Remove them for better results.", &desc.name)));
println!("{}", colors::yellow(format!("Warning: start() and end() calls in \"{}\" are ignored because it averages less\nthan 10µs per iteration. Remove them for better results.", &desc.name)));
}
self.group_measurements.push((desc, stats.clone()));