Use boost::unordered_flat_set to hold visited vertices in FindPath()

This improves sorting performance by 40%.
This commit is contained in:
Oliver Hamlet
2025-01-17 20:18:34 +00:00
parent ead4f21250
commit bc8701a7ba
+3 -2
View File
@@ -28,6 +28,7 @@
#include <boost/graph/breadth_first_search.hpp>
#include <boost/graph/iteration_macros.hpp>
#include <boost/graph/topological_sort.hpp>
#include <boost/unordered/unordered_flat_set.hpp>
#include <queue>
#include "api/helpers/logging.h"
@@ -476,8 +477,8 @@ bool FindPath(RawPluginGraph& graph,
BidirVisitor& visitor) {
std::queue<vertex_t> forwardQueue;
std::queue<vertex_t> reverseQueue;
std::unordered_set<vertex_t> forwardVisited;
std::unordered_set<vertex_t> reverseVisited;
boost::unordered_flat_set<vertex_t> forwardVisited;
boost::unordered_flat_set<vertex_t> reverseVisited;
forwardQueue.push(fromVertex);
forwardVisited.insert(fromVertex);