-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Discard timing outliers for faster, more accurate benchmarks
Instead of attempting to use JIT stats to restart measurement runs (which never seems to stabilise anyway), and then only sampling for a couple of seconds, discard outliers (more than three standard deviations above the mean), and continue to sample until the 99% confidence interval of the estimated mean is within 1% of it. Outliers can be discarded retroactively if more than 3 standard deviations above the mean of the next 20 samples, as the worst outliers tend to come at the start of the run, when there are no statistics to go on. Outliers are discarded continuously to ensure the sample error is not biased upwards by them. Mean and standard deviation are calculated off of exponentially weighted moving averages to increase the ability to spot larger initial outliers without setting the threshold too low and discarding accurate samples. The mean and s.d. used for sample error estimation and display still weights all (non-outlier) samples equally, however. Benchmarks now typically take around 5s rather than 12s, and include many more samples.
- Loading branch information
1 parent
04f0fd9
commit 595a96e
Showing
2 changed files
with
159 additions
and
65 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters