# checkasm performance measurements

want to understand this report?

# overview

ⓘ

# controls

The overview chart can be controlled by clicking the following elements:

- a bar or its label zooms the x-axis to that bar
- the background resets zoom to the entire chart
- the x-axis toggles between linear and logarithmic scale
- the chevron in the top-right toggles the the legend
- a group name in the legend shows/hides that group

# understanding this report

In this report, each function benchmarked by checkasm 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. This function is estimated from a Log-normal distribution fitted to the measurement data. The peak corresponds to the most likely execution time (point estimate).
- 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 estimate of execution time for a given number of iterations. Ideally, all measurements will be on (or very near) this line. The transparent area behind it shows the 95% confidence interval for the execution time estimate. Note that, for technical reasons, when `bench_run()` is called multiple times in the same function, only the last call's measurements are shown in this chart.

Under the charts is a small table. They show the results of a log-space linear regression run on the measurements displayed in the right-hand chart.

- Adjusted cycles is the estimated number of CPU cycles taken by a single function call, after subtracting the overhead of the measurement loop and function call itself.
- Adjusted time is the estimated time taken by a single function call, after normalization by the estimated hardware timer tick frequency, and includes extra variance from the uncertainty of the tick rate estimation.
- Raw cycles and Raw time reflect the raw data collected from the underlying hardware counter, before subtracting the measurement overhead.