Skip to content

Commit 62a2a61

Browse files
committed
Use different measurement modes
1 parent a4a7178 commit 62a2a61

3 files changed

Lines changed: 12 additions & 1 deletion

File tree

.github/workflows/codspeed.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,12 @@ jobs:
4747
- run: |
4848
for crate in $(cargo metadata --no-deps --format-version 1 | jq -r '.packages[].name'); do
4949
if [ -e "$crate/benches" ]; then
50-
cargo codspeed build --package "$crate" --locked --features bench
50+
for bench in $(find "$crate/benches" -depth 1 -print0 -iname "*.rs" | xargs -0 -n1 basename -s .rs); do
51+
# Set measurement mode from Cargo.toml metadata, default to "instrumentation".
52+
mode=$(cargo metadata --no-deps --format-version 1 | jq -r --arg crate "$crate" --arg bench "$bench" '.packages[] | select(.name == $crate) | .metadata.bench[$bench].codspeed.mode // "instrumentation"')
53+
echo "Building benchmark '$bench' in crate '$crate' with measurement mode '$mode'"
54+
cargo codspeed build --package "$crate" --locked --features bench --bench "$bench" --release --measurement-mode "$mode"
55+
done
5156
fi
5257
done
5358

neqo-bin/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ ignored = ["log"]
7272
# See https://github.com/bheisler/criterion.rs/blob/master/book/src/faq.md#cargo-bench-gives-unrecognized-option-errors-for-valid-command-line-options
7373
bench = false
7474

75+
[package.metadata.bench.main]
76+
codspeed.mode = "wallclock" # Use "wallclock" mode for "main" bench with codspeed.
77+
7578
[[bench]]
7679
name = "main"
7780
harness = false

neqo-http3/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ ignored = ["criterion", "log"]
5656
# See https://github.com/bheisler/criterion.rs/blob/master/book/src/faq.md#cargo-bench-gives-unrecognized-option-errors-for-valid-command-line-options
5757
bench = false
5858

59+
[package.metadata.bench.streams]
60+
codspeed.mode = "wallclock" # Use "wallclock" mode for "main" bench with codspeed.
61+
5962
[[bench]]
6063
name = "streams"
6164
harness = false

0 commit comments

Comments
 (0)