feat: dagrunner, initial version
This commit is contained in:
122 files changed
+23101
No files matched your search
@@ -0,0 +1,81 @@
|
||||
//! 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 = execution_benches;
|
||||
config = configure_criterion();
|
||||
targets = basic::execution::bench_dag_execution
|
||||
}
|
||||
|
||||
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::config_broadcast::bench_config_broadcast,
|
||||
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,
|
||||
execution_benches,
|
||||
scaling_benches,
|
||||
pattern_benches,
|
||||
realistic_benches,
|
||||
comparison_benches
|
||||
);
|
||||
Reference in new issue
Block a user