From d150aab2dcd14f6487c89cd6ba175c190b680da3 Mon Sep 17 00:00:00 2001 From: Justin Weng Date: Fri, 14 Jun 2024 15:12:59 +1000 Subject: [PATCH] #1649 Add a microbenchmark for QueryCounter (#1663) --- shotover/benches/benches/chain.rs | 36 +++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/shotover/benches/benches/chain.rs b/shotover/benches/benches/chain.rs index 67722d8fc..161c2648a 100644 --- a/shotover/benches/benches/chain.rs +++ b/shotover/benches/benches/chain.rs @@ -16,6 +16,7 @@ use shotover::transforms::loopback::Loopback; use shotover::transforms::null::NullSink; #[cfg(feature = "alpha-transforms")] use shotover::transforms::protect::{KeyManagerConfig, ProtectConfig}; +use shotover::transforms::query_counter::QueryCounter; use shotover::transforms::redis::cluster_ports_rewrite::RedisClusterPortsRewrite; use shotover::transforms::throttling::RequestThrottlingConfig; use shotover::transforms::{ @@ -295,6 +296,41 @@ fn criterion_benchmark(c: &mut Criterion) { ) }); } + + { + let chain = TransformChainBuilder::new( + vec![ + Box::new(QueryCounter::new("chain".to_owned())), + Box::::default(), + ], + "bench", + ); + let wrapper = Wrapper::new_with_addr( + vec![ + Message::from_frame(Frame::Redis(RedisFrame::Array(vec![ + RedisFrame::BulkString(Bytes::from_static(b"SET")), + RedisFrame::BulkString(Bytes::from_static(b"foo")), + RedisFrame::BulkString(Bytes::from_static(b"bar")), + ]))), + Message::from_frame(Frame::Redis(RedisFrame::Array(vec![ + RedisFrame::BulkString(Bytes::from_static(b"GET")), + RedisFrame::BulkString(Bytes::from_static(b"foo")), + ]))), + ], + "127.0.0.1:6379".parse().unwrap(), + ); + + group.bench_function("query_counter", |b| { + b.to_async(&rt).iter_batched( + || BenchInput { + chain: chain.build(TransformContextBuilder::new_test()), + wrapper: wrapper.clone(), + }, + BenchInput::bench, + BatchSize::SmallInput, + ) + }); + } } #[cfg(feature = "alpha-transforms")]