From 0640b181f017ff29a18f6953a4f0ecd58cb87e33 Mon Sep 17 00:00:00 2001 From: Denis Smirnov <sd@picodata.io> Date: Tue, 23 Apr 2024 14:06:28 +0700 Subject: [PATCH] bench: test subtree extraction performance --- sbroad-benches/benches/parse.rs | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/sbroad-benches/benches/parse.rs b/sbroad-benches/benches/parse.rs index 4ff0fe7b7..0ce62f845 100644 --- a/sbroad-benches/benches/parse.rs +++ b/sbroad-benches/benches/parse.rs @@ -336,6 +336,25 @@ fn bench_full_parsing(c: &mut Criterion) { } } +fn bench_take_subtree(c: &mut Criterion) { + let mut engine = RouterRuntimeMock::new(); + let param: u64 = 42; + let params = vec![Value::from(param)]; + + let target_query = get_query_with_many_references(); + let mut query = Query::new(&mut engine, target_query, params).unwrap(); + + let plan = query.get_exec_plan().get_ir_plan(); + let top_id = plan.get_top().unwrap(); + + let bench_name = format!("getting_subtree"); + c.bench_function(bench_name.as_str(), |b| { + b.iter(|| { + let _subtree = query.get_mut_exec_plan().take_subtree(top_id).unwrap(); + }) + }); +} + fn bench_serde_clone(c: &mut Criterion) { let mut engine = RouterRuntimeMock::new(); let param: u64 = 42; @@ -402,6 +421,7 @@ criterion_group!( benches, bench_pure_pest_parsing, bench_full_parsing, - bench_serde_clone + bench_serde_clone, + bench_take_subtree, ); criterion_main!(benches); -- GitLab