repositories / smith
smith
There are many coding harnesses - but this one is fast
owned by admin
smith-bench/benches/wall_clock.rs
Raw//! Wall-clock benches for local A/B comparisons (`SMH-SPEC-SPEC0001`,
//! Performance and portability): criterion through `cargo x bench`.
//!
//! Numbers answer "faster here, now" on one machine in one session; they
//! are never committed and never gate. Compare two builds with
//! `cargo x bench -- --save-baseline <change>` then `--baseline <change>`.
use criterion::{Criterion, criterion_main};
use smith::{Message, MessageId, Role};
use std::hint::black_box;
fn message_creation(criterion: &mut Criterion) {
let mut group = criterion.benchmark_group("message_creation");
group.bench_function("message_id", |bencher| {
bencher.iter(|| black_box(MessageId::new()));
});
group.bench_function("empty_message", |bencher| {
bencher.iter(|| black_box(Message::new(Role::Assistant)));
});
group.bench_function("text_message", |bencher| {
bencher.iter(|| black_box(Message::with_text(Role::User, "benchmark text")));
});
group.finish();
}
fn benches() {
let mut criterion = Criterion::default().configure_from_args();
message_creation(&mut criterion);
}
criterion_main!(benches);