• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1This directory contains some selected benchmark runs on this crate. Each
2subdirectory corresponds to a single run. In general, each run should contain a
3complete set of benchmarks defined at the time they were run.
4
5Each sub-directory has two files:
6
7* `raw.json` is the raw JSON export of the benchmark data. This is best read
8  with `critcmp` (see below), which can slice and dice it any number of ways.
9* `README.md` contains details about the benchmarking environment along with
10  two tables: one table comparing memchr implementations and another comparing
11  memmem implementations. The tables are generated via the `make-pretty-tables`
12  script in this directory. (This is not all benchmarks. It leaves out reverse
13  searching and the `memchr2` and `memchr3` benchmarks.)
14
15The tables in the README are primarily meant to make the data _somewhat_ easy
16to read in GitHub. But in reality, `critcmp` is the best way to read the
17benchmarks. For example, let's say you wanted to compare only this crate's
18memmem implementation and std's substring search routine, but only benchmarks
19which differ by 5% or more. `critcmp` can do this for you:
20
21```
22critcmp runs/2021-04-30_initial/raw.json -g 'memmem/[^/]+/(.*)' -f '/(krate|stud)/' -t5
23```
24
25(NOTE: Consult the README in the corresponding run directory for the `critcmp`
26version used to generate the `raw.json` file. You may need to use the same
27version of `critcmp` to read it.)
28
29This command does four things:
30
31* Reads the benchmark data from `runs/2021-04-30_initial/raw.json`.
32* Compares all benchmarks against each other where the values of the capturing
33  groups in `memmem/[^/]+/(.*)` are equivalent in the benchmark names.
34* Limits the benchmark comparisons to those corresponding to either this
35  crate's implementation (named `krate`) or std's implementation (named
36  `stud`).
37* Only prints comparisons with a difference of 5% or more.
38
39For more info on specific benchmarks, see the source code and `data` directory.
40