# criterion performance measurements

## overview

want to understand this report?

## regex/PCRE naive

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

OLS regression | xxx | xxx | xxx |

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

Mean execution time | 2.291118933930879e-2 | 2.2984685877950408e-2 | 2.3199554058474483e-2 |

Standard deviation | 1.4417709176200834e-4 | 2.510592040475296e-4 | 4.1620824710408947e-4 |

Outlying measurements have slight (4.75e-2%) effect on estimated standard deviation.

## regex/PCRE pre-compiled

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

OLS regression | xxx | xxx | xxx |

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

Mean execution time | 1.2577549092246674e-2 | 1.262961960692677e-2 | 1.269303803381242e-2 |

Standard deviation | 1.0036826259828108e-4 | 1.560706963304127e-4 | 1.9528225346229048e-4 |

Outlying measurements have slight (3.566529492455418e-2%) effect on estimated standard deviation.

## regex/PCRE.Light

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

OLS regression | xxx | xxx | xxx |

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

Mean execution time | 1.4298964461651848e-2 | 1.4342908478490367e-2 | 1.4553808301300193e-2 |

Standard deviation | 5.543024371155737e-5 | 1.678847571683587e-4 | 3.543890590077525e-4 |

Outlying measurements have slight (3.839999999999998e-2%) effect on estimated standard deviation.

## regex/TDFA

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

OLS regression | xxx | xxx | xxx |

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

Mean execution time | 3.496228063906508e-2 | 3.5121772225504506e-2 | 3.55584771935144e-2 |

Standard deviation | 1.3807517881529605e-4 | 5.529133667375863e-4 | 9.515205455784276e-4 |

Outlying measurements have slight (5.859374999999999e-2%) effect on estimated standard deviation.

## regex/PCRE.Utils

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

OLS regression | xxx | xxx | xxx |

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

Mean execution time | 1.7803472320297425e-2 | 1.7919895820938746e-2 | 1.81990640532539e-2 |

Standard deviation | 2.2067354863813019e-4 | 4.4145234015470806e-4 | 7.691130772684747e-4 |

Outlying measurements have slight (4.158790170132304e-2%) effect on estimated standard deviation.

## combinators/attoparsec

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

OLS regression | xxx | xxx | xxx |

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

Mean execution time | 4.517498896712578e-3 | 4.536618461232998e-3 | 4.5752482144414955e-3 |

Standard deviation | 3.8029800981603504e-5 | 8.512825403017896e-5 | 1.704059288501477e-4 |

Outlying measurements have slight (2.271498107084899e-2%) effect on estimated standard deviation.

## combinators/attoparsec2

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

OLS regression | xxx | xxx | xxx |

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

Mean execution time | 7.32627489781403e-3 | 7.344385508849722e-3 | 7.361741186722742e-3 |

Standard deviation | 3.684187991965886e-5 | 4.899010148115579e-5 | 6.017864050234967e-5 |

Outlying measurements have slight (2.7755102040816326e-2%) effect on estimated standard deviation.

## combinators/parsec3

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

OLS regression | xxx | xxx | xxx |

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

Mean execution time | 5.4759396183559475e-2 | 5.489220168652477e-2 | 5.5138056950819164e-2 |

Standard deviation | 2.2195922002123854e-4 | 3.336498187894075e-4 | 4.4806132250173135e-4 |

Outlying measurements have slight (7.100591715976329e-2%) effect on estimated standard deviation.

## combinators/parsec3_v2

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

OLS regression | xxx | xxx | xxx |

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

Mean execution time | 4.690216921966307e-2 | 4.721274243837044e-2 | 4.740497962906972e-2 |

Standard deviation | 2.245902905329113e-4 | 5.250718044304818e-4 | 8.694274206608857e-4 |

Outlying measurements have slight (6.632653061224489e-2%) 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.