use criterion::{criterion_group, criterion_main, Criterion};
use clap::Parser;
use retch_cli::cli::Cli;
use retch_cli::config::Config;
use retch_cli::fetch::SystemInfo;
use retch_cli::gpu;
fn bench_system_info_collect(c: &mut Criterion) {
let cli = Cli::try_parse_from(["retch"]).unwrap();
let config = Config::default();
c.bench_function("SystemInfo::collect", |b| {
b.iter(|| {
let _ = SystemInfo::collect(&cli, &config);
});
});
}
fn bench_detect_gpus(c: &mut Criterion) {
c.bench_function("gpu::detect_gpus", |b| {
b.iter(|| {
let _ = gpu::detect_gpus();
});
});
}
criterion_group! {
name = benches;
config = Criterion::default()
.sample_size(20)
.measurement_time(std::time::Duration::from_secs(10));
targets = bench_system_info_collect, bench_detect_gpus
}
criterion_main!(benches);