From e3e0dc994c6ba244472f58b940d0196616bb84b0 Mon Sep 17 00:00:00 2001 From: Rutger Broekhoff Date: Tue, 8 Sep 2026 12:30:06 +0200 Subject: More performance improvements --- server/src/api.cpp | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to 'server/src/api.cpp') diff --git a/server/src/api.cpp b/server/src/api.cpp index 137666b..e35e1b3 100644 --- a/server/src/api.cpp +++ b/server/src/api.cpp @@ -95,7 +95,7 @@ auto tag_invoke(json::value_from_tag, json::value& jv, sysinfo const& info) {"using_publication_of", std::format("{:%FT%TZ}", info.using_publication_of)}, {"blse_index_size", info.blse_index_size}, - {"p_index_size", info.p_index_size}, + {"bpe_index_size", info.bpe_index_size}, }; } @@ -124,7 +124,7 @@ handler::handler(log::logger const& l, datex2::situation_publication pub) } for (auto p : rc->relevant_points) { - p_index_.insert(p_index_value{p, rc}); + bpe_index_.insert(p, rc); } } @@ -141,7 +141,7 @@ handler::handler(log::logger const& l, datex2::situation_publication pub) auto const dur_build_s = chrono::duration{after_build - before_build}; l_.info("Indexes built in {}", dur_build_s); l_.info("BLSE index size: {}", blse_index_.size()); - l_.info("Point index size: {}", p_index_.size()); + l_.info("Point index size: {}", bpe_index_.size()); } auto handler::process_gpx(gpx::file&& gpx_file) @@ -194,17 +194,12 @@ auto handler::process_gpx(gpx::file&& gpx_file) // relevant_road_closures.emplace(rc); ls_checked++; } - for (auto it = p_index_.qbegin(bgeo::index::intersects(part_box)); - it != p_index_.qend(); it++) + for (auto const& rc : bpe_index_.intersection(part_zone_lss)) { - // Cannot use structured bindings here for the same reason as above. - geo::utm::zonable_wgs84_point const& p = std::get<0>(*it); - std::shared_ptr const& rc = std::get<1>(*it); if (rc->validity && rc->validity->intersect(check_periods).periods().empty()) continue; - if (bgeo::distance(p, part, vincenty_strategy) < min_distance_) - relevant_road_closures.emplace(rc); + relevant_road_closures.emplace(rc); p_checked++; } } @@ -285,7 +280,7 @@ auto handler::sysinfo() -> struct sysinfo return { .using_publication_of = pub_.publication_time, .blse_index_size = blse_index_.size(), - .p_index_size = p_index_.size(), + .bpe_index_size = bpe_index_.size(), }; } -- cgit v1.3