sqlx/sqlx-bench
Austin Bonander a2eceec33b
chore: replace dotenv with dotenvy (#2003)
* chore: replace `dotenv` with `dotenvy`

The former appears to be unmaintained and the latter is a drop-in replacement.

* chore: fix all warnings
2022-07-28 14:33:44 -07:00
..
benches chore: replace dotenv with dotenvy (#2003) 2022-07-28 14:33:44 -07:00
results/2020-07-01-bench_pgpool_acquire perf: document sqlx-bench and pool fairness benchmark 2020-07-03 05:59:20 -07:00
Cargo.toml chore: replace dotenv with dotenvy (#2003) 2022-07-28 14:33:44 -07:00
README.md Fix typos (#1894) 2022-06-08 14:56:56 -07:00
test.db benches: add sqlite_fetch_all benchmark 2022-06-23 17:20:27 -07:00

SQLx Self-Benchmarks

This Cargo project implements various benchmarks for SQLx using Criterion.

Available Benchmarks

  • Group pg_pool: benchmarks sqlx::Pool against a PostgreSQL server.
    • DATABASE_URL must be set (or in .env) pointing to a PostgreSQL server. It should preferably be running on the same machine as the benchmarks to reduce latency.
    • The postgres feature must be enabled for this benchmark to run.
    • Benchmarks:
      • bench_pgpool_acquire: benchmarks Pool::acquire() when many concurrent tasks are also using the pool, with or without the pool being fair. Concurrently to the benchmark iteration function calling and blocking on Pool::acquire(), a varying number of background tasks are also calling acquire() and holding the acquired connection for 500µs each before releasing it back to the pool. The pool is created with .min_connections(50).max_connections(50) so we shouldn't be measuring anything but the actual overhead of Pool's bookkeeping.

Running

You must choose a runtime to execute the benchmarks on; the feature flags are the same as the sqlx crate:

cargo bench --features runtime-tokio-native-tls
cargo bench --features runtime-async-std-rustls

When complete, the benchmark results will be in target/criterion/. Open target/criterion/report/index.html or pick one of the benchmark subfolders and open report/index.html there to view the results.

Benchmark Results

If you want to share the results here, please follow the format below.