MCPcopy Create free account
hub / github.com/f0rr0/oliphaunt / run_rtt_server_sqlx_benchmark

Function run_rtt_server_sqlx_benchmark

xtask/src/main.rs:4001–4056  ·  view source on GitHub ↗
(iterations: usize)

Source from the content-addressed store, hash-verified

3999}
4000
4001fn run_rtt_server_sqlx_benchmark(iterations: usize) -> Result<BenchmarkRun> {
4002 let open_started = Instant::now();
4003 let server = benchmark_pglite_server()?;
4004 let open_micros = open_started.elapsed().as_micros();
4005 let uri = server.database_url();
4006 let runtime = tokio::runtime::Builder::new_current_thread()
4007 .enable_all()
4008 .build()
4009 .context("create benchmark Tokio runtime")?;
4010
4011 let (connect_micros, setup_micros, tests) = runtime.block_on(async {
4012 let connect_started = Instant::now();
4013 let mut conn = sqlx::PgConnection::connect(&uri)
4014 .await
4015 .context("connect SQLx benchmark client")?;
4016 let connect_micros = connect_started.elapsed().as_micros();
4017
4018 let setup_started = Instant::now();
4019 conn.execute(rtt_setup_sql())
4020 .await
4021 .context("execute RTT setup over SQLx")?;
4022 let setup_micros = setup_started.elapsed().as_micros();
4023
4024 let mut tests = Vec::new();
4025 for case in rtt_cases() {
4026 let mut samples = Vec::with_capacity(iterations);
4027 for _ in 0..iterations {
4028 let started = Instant::now();
4029 conn.execute(case.sql.as_str())
4030 .await
4031 .with_context(|| format!("execute RTT benchmark {} over SQLx", case.id))?;
4032 samples.push(started.elapsed().as_micros());
4033 }
4034 tests.push(samples_result(
4035 case.id,
4036 format!("Test {}: {}", case.id, case.label),
4037 "milliseconds",
4038 iterations,
4039 samples,
4040 ));
4041 }
4042 conn.close().await.context("close SQLx benchmark client")?;
4043 Ok::<_, anyhow::Error>((connect_micros, setup_micros, tests))
4044 })?;
4045 server.shutdown()?;
4046
4047 Ok(BenchmarkRun {
4048 suite: "rtt",
4049 mode: "server_sqlx",
4050 description: "PGliteServer over the Postgres wire protocol using one long-lived SQLx connection.",
4051 open_micros,
4052 connect_micros: Some(connect_micros),
4053 setup_micros,
4054 tests,
4055 })
4056}
4057
4058fn run_rtt_server_tokio_postgres_simple_benchmark(iterations: usize) -> Result<BenchmarkRun> {

Callers 1

perf_benchFunction · 0.85

Calls 11

benchmark_pglite_serverFunction · 0.85
rtt_setup_sqlFunction · 0.85
rtt_casesFunction · 0.85
samples_resultFunction · 0.85
elapsedMethod · 0.80
database_urlMethod · 0.80
buildMethod · 0.80
executeMethod · 0.80
pushMethod · 0.80
closeMethod · 0.45
shutdownMethod · 0.45

Tested by

no test coverage detected