criterion performance measurements
overview
want to understand this report?
getRuns/getRuns == getRunsA
| lower bound | estimate | upper bound | |
|---|---|---|---|
| OLS regression | xxx | xxx | xxx |
| R² goodness-of-fit | xxx | xxx | xxx |
| Mean execution time | 8.137137457735603e-6 | 8.171964279239882e-6 | 8.230372195826806e-6 |
| Standard deviation | 9.734859548106342e-8 | 1.4484714669968588e-7 | 2.1564848611483254e-7 |
Outlying measurements have moderate (0.16379797887397704%) effect on estimated standard deviation.
getRuns/getRuns == getRunsB
| lower bound | estimate | upper bound | |
|---|---|---|---|
| OLS regression | xxx | xxx | xxx |
| R² goodness-of-fit | xxx | xxx | xxx |
| Mean execution time | 8.246150102130083e-6 | 8.376840259223055e-6 | 8.510557788025473e-6 |
| Standard deviation | 3.3372874666670637e-7 | 4.1555740458950486e-7 | 4.963519713403596e-7 |
Outlying measurements have severe (0.604564660864929%) effect on estimated standard deviation.
getRuns/getRunsA == getRunsB
| lower bound | estimate | upper bound | |
|---|---|---|---|
| OLS regression | xxx | xxx | xxx |
| R² goodness-of-fit | xxx | xxx | xxx |
| Mean execution time | 4.175059447976584e-3 | 4.198057029939379e-3 | 4.2233294958912955e-3 |
| Standard deviation | 5.033092452702655e-5 | 7.144580900479012e-5 | 9.853992813401489e-5 |
Outlying measurements have slight (2.2210743801652753e-2%) effect on estimated standard deviation.
getRuns'/getRuns' == getRuns'A
| lower bound | estimate | upper bound | |
|---|---|---|---|
| OLS regression | xxx | xxx | xxx |
| R² goodness-of-fit | xxx | xxx | xxx |
| Mean execution time | 1.3793367136477767e-5 | 1.3827181994105895e-5 | 1.3881812637936828e-5 |
| Standard deviation | 8.707294310941795e-8 | 1.4220229726471133e-7 | 2.3258074485852433e-7 |
Outlying measurements have slight (5.9876801301789725e-2%) effect on estimated standard deviation.
getRuns'/getRuns' == getRuns'B
| lower bound | estimate | upper bound | |
|---|---|---|---|
| OLS regression | xxx | xxx | xxx |
| R² goodness-of-fit | xxx | xxx | xxx |
| Mean execution time | 1.3746930646565638e-5 | 1.3790665963232724e-5 | 1.385185656688577e-5 |
| Standard deviation | 1.032425298867931e-7 | 1.6906304376346932e-7 | 3.1331475491593175e-7 |
Outlying measurements have slight (7.826228608969195e-2%) effect on estimated standard deviation.
getRuns'/getRuns'A == getRuns'B
| lower bound | estimate | upper bound | |
|---|---|---|---|
| OLS regression | xxx | xxx | xxx |
| R² goodness-of-fit | xxx | xxx | xxx |
| Mean execution time | 4.374635131238406e-3 | 4.417774668565256e-3 | 4.499445784045331e-3 |
| Standard deviation | 1.3224472082691945e-4 | 1.898997660508071e-4 | 2.636819935706373e-4 |
Outlying measurements have moderate (0.24294455372998636%) effect on estimated standard deviation.
understanding this report
In this report, each function benchmarked by criterion is assigned a section of its own. The charts in each section are active; if you hover your mouse over data points and annotations, you will see more details.
- The chart on the left is a kernel density estimate (also known as a KDE) of time measurements. This graphs the probability of any given time measurement occurring. A spike indicates that a measurement of a particular time occurred; its height indicates how often that measurement was repeated.
- The chart on the right is the raw data from which the kernel density estimate is built. The x axis indicates the number of loop iterations, while the y axis shows measured execution time for the given number of loop iterations. The line behind the values is the linear regression prediction of execution time for a given number of iterations. Ideally, all measurements will be on (or very near) this line.
Under the charts is a small table. The first two rows are the results of a linear regression run on the measurements displayed in the right-hand chart.
- OLS regression indicates the time estimated for a single loop iteration using an ordinary least-squares regression model. This number is more accurate than the mean estimate below it, as it more effectively eliminates measurement overhead and other constant factors.
- R² goodness-of-fit is a measure of how accurately the linear regression model fits the observed measurements. If the measurements are not too noisy, R² should lie between 0.99 and 1, indicating an excellent fit. If the number is below 0.99, something is confounding the accuracy of the linear model.
- Mean execution time and standard deviation are statistics calculated from execution time divided by number of iterations.
We use a statistical technique called the bootstrap to provide confidence intervals on our estimates. The bootstrap-derived upper and lower bounds on estimates let you see how accurate we believe those estimates to be. (Hover the mouse over the table headers to see the confidence levels.)
A noisy benchmarking environment can cause some or many measurements to fall far from the mean. These outlying measurements can have a significant inflationary effect on the estimate of the standard deviation. We calculate and display an estimate of the extent to which the standard deviation has been inflated by outliers.