Files

74 lines
2.1 KiB
Rust

//! dagx benchmark suite
//!
//! Organized into logical modules:
//! - basic/: DAG creation, execution, and scaling benchmarks
//! - patterns/: Common DAG patterns (fanout, diamond, 10k breakdown)
//! - realistic/: Real-world workload simulations (ETL, config broadcast, etc.)
//! - comparisons/: Head-to-head benchmarks against dagrs
use criterion::{criterion_group, criterion_main, Criterion};
mod basic;
mod comparisons;
mod patterns;
mod realistic;
// Configure criterion with better defaults
fn configure_criterion() -> Criterion {
Criterion::default()
.configure_from_args()
.noise_threshold(0.05) // 5% noise threshold for detecting changes
.significance_level(0.05) // 95% confidence interval
.warm_up_time(std::time::Duration::from_secs(3))
}
criterion_group! {
name = creation_benches;
config = configure_criterion();
targets = basic::creation::bench_dag_creation
}
criterion_group! {
name = scaling_benches;
config = configure_criterion();
targets = basic::scaling::bench_dag_scaling
}
criterion_group! {
name = pattern_benches;
config = configure_criterion();
targets =
patterns::fanout::bench_fanout,
patterns::diamond::bench_diamond,
patterns::breakdown::bench_10k_breakdown
}
criterion_group! {
name = realistic_benches;
config = configure_criterion();
targets =
realistic::etl::bench_etl_pipeline,
realistic::memory_efficiency::bench_memory_efficiency,
realistic::mixed::bench_mixed_patterns
}
criterion_group! {
name = comparison_benches;
config = configure_criterion();
targets =
comparisons::linear_pipeline::bench_linear_pipeline,
comparisons::wide_fanout::bench_wide_fanout,
comparisons::diamond_pattern::bench_diamond_pattern,
comparisons::deep_chain::bench_deep_chain,
comparisons::etl_pipeline::bench_etl_pipeline,
comparisons::large_scale::bench_large_scale
}
criterion_main!(
creation_benches,
scaling_benches,
pattern_benches,
realistic_benches,
comparison_benches
);