|
1 | | -# Criterion bench results — 719f76c |
2 | | - |
3 | | -``` |
4 | | -host=noah-Lambda-Vector |
5 | | -os=Linux 6.8.0-90-generic x86_64 |
6 | | -cpu=AMD Ryzen Threadripper 7960X 24-Cores |
7 | | -cores=48 |
8 | | -rustc=rustc 1.95.0 (59807616e 2026-04-14) |
9 | | -cargo=cargo 1.95.0 (f2d3ce0bd 2026-03-21) |
10 | | -git_sha=719f76c |
11 | | -git_ref=refs/heads/feat/bench-workflow |
12 | | -ts=2026-04-28T10:58:41Z |
13 | | -trigger=local-seed-run |
14 | | -``` |
| 1 | +# Criterion bench results — 1005a55 |
| 2 | + |
| 3 | + host=mac-server |
| 4 | + os=Linux 6.8.0-107-generic x86_64 |
| 5 | + cpu=Intel(R) Xeon(R) W-3245 CPU @ 3.20GHz |
| 6 | + cores=32 |
| 7 | + rustc=rustc 1.95.0 (59807616e 2026-04-14) |
| 8 | + cargo=cargo 1.95.0 (f2d3ce0bd 2026-03-21) |
| 9 | + git_sha=1005a55 |
| 10 | + git_ref=refs/heads/main |
| 11 | + ts=2026-04-28T14:36:22Z |
15 | 12 |
|
16 | 13 | ## Throughput (rows/sec) |
17 | 14 |
|
18 | | -| Size | Mean (ns) | Std Dev (ns) | Throughput | |
19 | | -|------|-----------|--------------|------------| |
20 | | -| 1000 | 111,057 | 4,348 | 9.00 Melem/s | |
21 | | -| 10000 | 1,025,980 | 27,510 | 9.75 Melem/s | |
22 | | -| 100000 | 10,375,079 | 286,954 | 9.64 Melem/s | |
23 | | - |
24 | | -## How to read these results |
25 | | - |
26 | | -Each row reports the mean wall-clock time per `etl_core::run` call |
27 | | -across the full input (1k / 10k / 100k synthetic CSV rows). The |
28 | | -throughput column is `size / mean` — what matters is that it stays |
29 | | -roughly constant across sizes (it does, ~9.6 Melem/s here) which |
30 | | -confirms the pipeline is **linear** in input size. |
31 | | - |
32 | | -Per-call overhead (CSV reader init, allocation) is amortized away by |
33 | | -10k rows; the 1k size catches startup-cost regressions. |
34 | | - |
35 | | -## Reproducing locally |
36 | | - |
37 | | -```bash |
38 | | -make bench # full criterion suite (~30s) |
39 | | -make bench-smoke # CI smoke mode (compile + run-once) |
40 | | -``` |
41 | | - |
42 | | -## Automated re-runs |
43 | | - |
44 | | -[`.github/workflows/bench.yml`](../.github/workflows/bench.yml) runs the |
45 | | -full suite on a self-hosted `intel` runner (paiml org runner pool): |
46 | | - |
47 | | -- on `workflow_dispatch` (manual) |
48 | | -- weekly via cron (Sundays 06:00 UTC) |
49 | | -- on push to `main` when `etl-core/`, `etl-bench/`, or `Cargo.{toml,lock}` change |
50 | | - |
51 | | -Results are committed back to this directory by the workflow. |
52 | | -The HTML report is also available as a workflow artifact. |
| 15 | +| Size | Mean | Std Dev | Throughput | |
| 16 | +|------|------|---------|------------| |
| 17 | +| 1000 | 163011 ns | 1372 ns | 6134555 rows/sec | |
| 18 | +| 10000 | 1515682 ns | 40834 ns | 6597688 rows/sec | |
| 19 | +| 100000 | 15159020 ns | 172458 ns | 6596732 rows/sec | |
0 commit comments