Files
neon/libs/wal_decoder/benches
Arpad Müller a22be5af72 Migrate the last crates to edition 2024 (#10998)
Migrates the remaining crates to edition 2024. We like to stay on the
latest edition if possible. There is no functional changes, however some
code changes had to be done to accommodate the edition's breaking
changes.

Like the previous migration PRs, this is comprised of three commits:

* the first does the edition update and makes `cargo check`/`cargo
clippy` pass. we had to update bindgen to make its output [satisfy the
requirements of edition
2024](https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html)
* the second commit does a `cargo fmt` for the new style edition.
* the third commit reorders imports as a one-off change. As before, it
is entirely optional.

Part of #10918
2025-02-27 09:40:40 +00:00
..

WAL Decoding and Interpretation Benchmarks

Note that these benchmarks pull WAL from a public bucket in S3 as a preparation step. Hence, you need a way to auth with AWS. You can achieve this by copying the ~/.aws/config file from the AWS SSO notion page and exporting AWS_PROFILE=dev when invoking the benchmarks.

To run benchmarks:

aws sso login --profile dev

# All benchmarks.
AWS_PROFILE=dev cargo bench --package wal_decoder

# Specific file.
AWS_PROFILE=dev cargo bench --package wal_decoder --bench bench_interpret_wal

# Specific benchmark.
AWS_PROFILE=dev cargo bench --package wal_decoder --bench bench_interpret_wal unsharded

# List available benchmarks.
cargo bench --package wal_decoder --benches -- --list

# Generate flamegraph profiles using pprof-rs, profiling for 10 seconds.
# Output in target/criterion/*/profile/flamegraph.svg.
AWS_PROFILE=dev cargo bench --package wal_decoder --bench bench_interpret_wal unsharded -- --profile-time 10

Additional charts and statistics are available in target/criterion/report/index.html.

Benchmarks are automatically compared against the previous run. To compare against other runs, see --baseline and --save-baseline.