From 6d70e4096c9eb0cdc7bb310ccf18dff7e58dde76 Mon Sep 17 00:00:00 2001 From: mority Date: Tue, 30 Apr 2024 11:11:54 +0200 Subject: [PATCH] reuse allocation of search and raptor state --- benchmark/main.cc | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/benchmark/main.cc b/benchmark/main.cc index 10fa01c0..149ceaee 100644 --- a/benchmark/main.cc +++ b/benchmark/main.cc @@ -329,17 +329,22 @@ int main(int argc, char* argv[]) { auto query_processing_timer = scoped_timer(fmt::format("processing of {} queries", queries.size())); progress_tracker->status("processing queries").in_high(queries.size()); - utl::parallel_for_run( + struct query_state { + search_state ss_; + raptor_state rs_; + }; + utl::parallel_for_run_threadlocal( queries.size(), - [&](auto const q_idx) { - auto ss = search_state{}; - auto rs = raptor_state{}; + [&](auto& query_state, auto const q_idx) { + query_state.ss_ = search_state{}; + query_state.rs_ = raptor_state{}; try { auto const result = routing::search>{ - **tt, nullptr, ss, rs, queries[q_idx]} + **tt, nullptr, query_state.ss_, query_state.rs_, + queries[q_idx]} .execute(); std::lock_guard guard(mutex); results.emplace_back(q_idx, result);