30 lines
845 B
Rust
30 lines
845 B
Rust
use criterion::{black_box, criterion_group, criterion_main, Criterion};
|
|
use ros3_rt::{LatencyTracker, ROS3Executor, Priority, Deadline};
|
|
use std::time::Duration;
|
|
|
|
fn benchmark_latency_tracking(c: &mut Criterion) {
|
|
c.bench_function("latency_record", |b| {
|
|
let tracker = LatencyTracker::new("benchmark");
|
|
let duration = Duration::from_micros(100);
|
|
|
|
b.iter(|| {
|
|
black_box(tracker.record(duration));
|
|
});
|
|
});
|
|
}
|
|
|
|
fn benchmark_executor_spawn(c: &mut Criterion) {
|
|
let executor = ROS3Executor::new().unwrap();
|
|
|
|
c.bench_function("executor_spawn_high", |b| {
|
|
b.iter(|| {
|
|
executor.spawn_high(async {
|
|
black_box(42);
|
|
});
|
|
});
|
|
});
|
|
}
|
|
|
|
criterion_group!(benches, benchmark_latency_tracking, benchmark_executor_spawn);
|
|
criterion_main!(benches);
|