# criterion performance measurements

## overview

want to understand this report?

## programs/factor/fully optimized

lower bound | estimate | upper bound | |
---|---|---|---|

OLS regression | xxx | xxx | xxx |

R² goodness-of-fit | xxx | xxx | xxx |

Mean execution time | 1.6933639628485406e-2 | 1.711936550696215e-2 | 1.7489211941600434e-2 |

Standard deviation | 3.135524105229344e-4 | 6.322347584149133e-4 | 1.0624820498027136e-3 |

Outlying measurements have moderate (0.12196060387964654%) effect on estimated standard deviation.

## programs/factor/not optimized

lower bound | estimate | upper bound | |
---|---|---|---|

OLS regression | xxx | xxx | xxx |

R² goodness-of-fit | xxx | xxx | xxx |

Mean execution time | 5.804821413189681e-2 | 5.926256812723066e-2 | 6.305990096324315e-2 |

Standard deviation | 1.0242274026527002e-3 | 3.4008881405907963e-3 | 5.7598324895296316e-3 |

Outlying measurements have moderate (0.15568388072838413%) effect on estimated standard deviation.

## programs/allfeatures/fully optimized

lower bound | estimate | upper bound | |
---|---|---|---|

OLS regression | xxx | xxx | xxx |

R² goodness-of-fit | xxx | xxx | xxx |

Mean execution time | 1.0271521463795171e-5 | 1.0414946090376135e-5 | 1.0814166114448921e-5 |

Standard deviation | 2.4224785236493634e-7 | 7.45958036773968e-7 | 1.4958553133201985e-6 |

Outlying measurements have severe (0.7618404965187816%) effect on estimated standard deviation.

## programs/allfeatures/not optimized

lower bound | estimate | upper bound | |
---|---|---|---|

OLS regression | xxx | xxx | xxx |

R² goodness-of-fit | xxx | xxx | xxx |

Mean execution time | 3.852995372032881e-5 | 3.911661804328012e-5 | 4.084722689129049e-5 |

Standard deviation | 1.288325312751046e-6 | 3.0679844671798198e-6 | 5.994192366888955e-6 |

Outlying measurements have severe (0.7609261830317536%) 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.