2019-06-22 20:54:43 -07:00

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);