Skip to content

Compute "Sum Total" measurements across benchmarks#325

Merged
fitzgen merged 2 commits into
bytecodealliance:mainfrom
fitzgen:sum-totals
Jul 9, 2026
Merged

Compute "Sum Total" measurements across benchmarks#325
fitzgen merged 2 commits into
bytecodealliance:mainfrom
fitzgen:sum-totals

Conversation

@fitzgen

@fitzgen fitzgen commented Jul 9, 2026

Copy link
Copy Markdown
Member

Depends on #324 (which is the first commit)

When not writing raw results, sum each sample's count across all benchmarks into new "Sum Total" measurements. The {summarize,effect_size}::write functions always sort these totals first.

Example effect_size output:

compilation :: cycles :: Sum Total

  No difference in performance.

  [42440 2078805.99 22345522] bar.dylib
  [42143 2118448.96 21992615] foo.dylib

compilation :: cycles :: benchmarks/rust-protobuf/benchmark.wasm

  No difference in performance.

  [254047 263161.00 276396] bar.dylib
  [278563 310704.33 339043] foo.dylib

compilation :: cycles :: benchmarks/libsodium/libsodium-onetimeauth7.wasm

  No difference in performance.

  [313024 335259.00 362670] bar.dylib
  [284558 291442.33 299564] foo.dylib

...

Example summary output:

compilation
  Sum Total
    cycles
      [43667 2067328.82 21894814] /Users/n.fitzgerald/scratch/sightglass-analysis-tweaks/engines/wasmtime/libengine.dylib
  benchmarks/blake3-scalar/benchmark.wasm
    cycles
      [202798 215967.20 224731] /Users/n.fitzgerald/scratch/sightglass-analysis-tweaks/engines/wasmtime/libengine.dylib
  benchmarks/bz2/benchmark.wasm
    cycles
      [410880 441370.60 496848] /Users/n.fitzgerald/scratch/sightglass-analysis-tweaks/engines/wasmtime/libengine.dylib
  benchmarks/cm-online-stats/cm-online-stats.wasm
    cycles
      [65024 68305.20 70651] /Users/n.fitzgerald/scratch/sightglass-analysis-tweaks/engines/wasmtime/libengine.dylib
...

Instead of requiring exactly two engines, produce an `EffectSize` for each pair
of engines present in each group of measurements. Fewer than two engines is
still an error.
@fitzgen fitzgen requested a review from posborne July 9, 2026 15:45
@posborne

posborne commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

Thanks @fitzgen changes make sense and look good to me.

When not writing raw results, sum each sample's count across all benchmarks into
new "Sum Total" measurements. The `summarize` and `effect_size` `write`
functions now always sort these totals first.

Example `effect_size` output:

```
compilation :: cycles :: Sum Total

  No difference in performance.

  [42440 2078805.99 22345522] bar.dylib
  [42143 2118448.96 21992615] foo.dylib

compilation :: cycles :: benchmarks/rust-protobuf/benchmark.wasm

  No difference in performance.

  [254047 263161.00 276396] bar.dylib
  [278563 310704.33 339043] foo.dylib

compilation :: cycles :: benchmarks/libsodium/libsodium-onetimeauth7.wasm

  No difference in performance.

  [313024 335259.00 362670] bar.dylib
  [284558 291442.33 299564] foo.dylib

...
```

Example `summary` output:

```
compilation
  Sum Total
    cycles
      [43667 2067328.82 21894814] /Users/n.fitzgerald/scratch/sightglass-analysis-tweaks/engines/wasmtime/libengine.dylib
  benchmarks/blake3-scalar/benchmark.wasm
    cycles
      [202798 215967.20 224731] /Users/n.fitzgerald/scratch/sightglass-analysis-tweaks/engines/wasmtime/libengine.dylib
  benchmarks/bz2/benchmark.wasm
    cycles
      [410880 441370.60 496848] /Users/n.fitzgerald/scratch/sightglass-analysis-tweaks/engines/wasmtime/libengine.dylib
  benchmarks/cm-online-stats/cm-online-stats.wasm
    cycles
      [65024 68305.20 70651] /Users/n.fitzgerald/scratch/sightglass-analysis-tweaks/engines/wasmtime/libengine.dylib
...
```
@fitzgen fitzgen merged commit da83467 into bytecodealliance:main Jul 9, 2026
12 checks passed
@fitzgen fitzgen deleted the sum-totals branch July 9, 2026 20:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants