v0.1.2-pre.005
This commit is contained in:
47
crates/ksp-logging-lib/tests/overhead.rs
Normal file
47
crates/ksp-logging-lib/tests/overhead.rs
Normal file
@@ -0,0 +1,47 @@
|
||||
// file: crates/ksp-logging-lib/tests/overhead.rs
|
||||
// version: 1
|
||||
|
||||
//! Diagnostic gross-overhead probe for the reload layer used by KSP Logging.
|
||||
|
||||
use tracing_subscriber::layer::SubscriberExt; // rust-rules: trait-import
|
||||
|
||||
const TEST_TARGET: &str = "ksp-logging-lib";
|
||||
const ITERATIONS: u64 = 200_000;
|
||||
|
||||
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:?}"
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user