//! 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 ` then `--baseline `. 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);