From bc8701a7ba3e105b5a90591f1c51627c0dd0e09e Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Fri, 17 Jan 2025 17:48:19 +0000 Subject: [PATCH] Use boost::unordered_flat_set to hold visited vertices in FindPath() This improves sorting performance by 40%. --- src/api/sorting/plugin_graph.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/api/sorting/plugin_graph.cpp b/src/api/sorting/plugin_graph.cpp index 1c5452b8..12b44165 100644 --- a/src/api/sorting/plugin_graph.cpp +++ b/src/api/sorting/plugin_graph.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include #include "api/helpers/logging.h" @@ -476,8 +477,8 @@ bool FindPath(RawPluginGraph& graph, BidirVisitor& visitor) { std::queue forwardQueue; std::queue reverseQueue; - std::unordered_set forwardVisited; - std::unordered_set reverseVisited; + boost::unordered_flat_set forwardVisited; + boost::unordered_flat_set reverseVisited; forwardQueue.push(fromVertex); forwardVisited.insert(fromVertex);