mirror of
https://github.com/launchbadge/sqlx.git
synced 2025-10-13 20:55:58 +00:00
68 lines
1.8 KiB
Rust
68 lines
1.8 KiB
Rust
#[macro_use]
|
|
extern crate criterion;
|
|
|
|
use criterion::Criterion;
|
|
use sqlx_postgres_protocol::{Encode, PasswordMessage, StartupMessage, Response, Severity};
|
|
|
|
fn criterion_benchmark(c: &mut Criterion) {
|
|
c.bench_function("encode Response(Builder)", |b| {
|
|
let mut dst = Vec::new();
|
|
b.iter(|| {
|
|
dst.truncate(0);
|
|
|
|
Response::builder()
|
|
.severity(Severity::Notice)
|
|
.code("42710")
|
|
.message("extension \"uuid-ossp\" already exists, skipping")
|
|
.file("extension.c")
|
|
.line(1656)
|
|
.routine("CreateExtension")
|
|
.encode(&mut dst)
|
|
.unwrap();
|
|
})
|
|
});
|
|
|
|
c.bench_function("encode Password(Cleartext)", |b| {
|
|
let mut dst = Vec::new();
|
|
b.iter(|| {
|
|
dst.truncate(0);
|
|
|
|
PasswordMessage::cleartext("8e323AMF9YSE9zftFnuhQcvhz7Vf342W4cWU")
|
|
.encode(&mut dst)
|
|
.unwrap();
|
|
})
|
|
});
|
|
|
|
c.bench_function("encode StartupMessage", |b| {
|
|
let mut dst = Vec::new();
|
|
b.iter(|| {
|
|
dst.truncate(0);
|
|
|
|
StartupMessage::builder()
|
|
.param("user", "postgres")
|
|
.param("database", "postgres")
|
|
.build()
|
|
.encode(&mut dst)
|
|
.unwrap();
|
|
})
|
|
});
|
|
|
|
c.bench_function("encode Password(MD5)", |b| {
|
|
let mut dst = Vec::new();
|
|
b.iter(|| {
|
|
dst.truncate(0);
|
|
|
|
PasswordMessage::md5(
|
|
"8e323AMF9YSE9zftFnuhQcvhz7Vf342W4cWU",
|
|
"postgres",
|
|
&[10, 41, 20, 150],
|
|
)
|
|
.encode(&mut dst)
|
|
.unwrap();
|
|
})
|
|
});
|
|
}
|
|
|
|
criterion_group!(benches, criterion_benchmark);
|
|
criterion_main!(benches);
|