MCPcopy Create free account
hub / github.com/Hexilee/async-postgres / benchmark

Function benchmark

tests/benchmark.rs:11–34  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

9
10#[test]
11fn benchmark() -> Result<(), Box<dyn Error>> {
12 let queries = TASKS * QUERIES;
13 let tcp_url = var("TCP_URL")?;
14 let uds_url = var("UDS_URL")?;
15 let mut tokio_rr = tokio::runtime::Runtime::new()?;
16
17 println!("Benchmark concurrency({}), queries({}):", TASKS, queries);
18 println!(" - async-postgres on async-std runtime:");
19 let elapsed = async_std::task::block_on(async_runtime(&tcp_url))?;
20 println!(" - tcp: {} us/q", elapsed.as_micros() / queries);
21 let elapsed = async_std::task::block_on(async_runtime(&uds_url))?;
22 println!(" - uds: {} us/q", elapsed.as_micros() / queries);
23 println!(" - async-postgres on tokio runtime:");
24 let elapsed = tokio_rr.block_on(tokio_runtime(&tcp_url))?;
25 println!(" - tcp: {} us/q", elapsed.as_micros() / queries);
26 let elapsed = tokio_rr.block_on(tokio_runtime(&uds_url))?;
27 println!(" - uds: {} us/q", elapsed.as_micros() / queries);
28 println!(" - tokio-postgres on tokio runtime:");
29 let elapsed = tokio_rr.block_on(tokio_postgres(&tcp_url))?;
30 println!(" - tcp: {} us/q", elapsed.as_micros() / queries);
31 let elapsed = tokio_rr.block_on(tokio_postgres(&uds_url))?;
32 println!(" - uds: {} us/q", elapsed.as_micros() / queries);
33 Ok(())
34}
35
36async fn async_runtime(url: &str) -> Result<Duration, Box<dyn Error>> {
37 use async_std::task::spawn;

Callers

nothing calls this directly

Calls 3

async_runtimeFunction · 0.85
tokio_runtimeFunction · 0.85
tokio_postgresFunction · 0.85

Tested by

no test coverage detected