48 lines
2.0 KiB
Rust
48 lines
2.0 KiB
Rust
// file: crates/ksp-logging-lib/tests/overhead.rs
|
|
// version: 2
|
|
|
|
//! Diagnostic gross-overhead probe for the reload layer used by KSP Logging.
|
|
|
|
use tracing_subscriber::layer::SubscriberExt; // rust-rules: trait-import
|
|
|
|
const ITERATIONS: u64 = 200_000;
|
|
const TEST_TARGET: &str = "ksp-logging-lib";
|
|
|
|
fn emit_probe_events() {
|
|
for sequence in 0..ITERATIONS {
|
|
tracing::trace!(target: TEST_TARGET, sequence, "reload overhead probe");
|
|
}
|
|
}
|
|
|
|
fn trace_filter() -> tracing_subscriber::filter::Targets {
|
|
return tracing_subscriber::filter::Targets::new()
|
|
.with_default(tracing_subscriber::filter::LevelFilter::OFF)
|
|
.with_target(TEST_TARGET, tracing_subscriber::filter::LevelFilter::TRACE);
|
|
}
|
|
|
|
#[test]
|
|
#[ignore = "diagnostic timing probe; run explicitly with --ignored --nocapture"]
|
|
fn reload_layer_overhead_remains_within_a_gross_regression_guardrail() {
|
|
let baseline_subscriber = tracing_subscriber::registry().with(trace_filter());
|
|
let baseline_start = std::time::Instant::now();
|
|
tracing::subscriber::with_default(baseline_subscriber, || {
|
|
emit_probe_events();
|
|
return;
|
|
});
|
|
let baseline_elapsed = baseline_start.elapsed();
|
|
let (reload_layer, _reload_handle) = tracing_subscriber::reload::Layer::new(trace_filter());
|
|
let reload_subscriber = tracing_subscriber::registry().with(reload_layer);
|
|
let reload_start = std::time::Instant::now();
|
|
tracing::subscriber::with_default(reload_subscriber, || {
|
|
emit_probe_events();
|
|
return;
|
|
});
|
|
let reload_elapsed = reload_start.elapsed();
|
|
let gross_ceiling = baseline_elapsed.saturating_mul(100).saturating_add(std::time::Duration::from_millis(100));
|
|
println!("KSP reload overhead probe: baseline={baseline_elapsed:?}, reload={reload_elapsed:?}, iterations={ITERATIONS}");
|
|
assert!(
|
|
reload_elapsed <= gross_ceiling,
|
|
"reload layer exceeded the gross regression guardrail: baseline={baseline_elapsed:?}, reload={reload_elapsed:?}"
|
|
);
|
|
}
|