diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-08-15 08:44:44 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-08-15 08:44:44 +0000 |
commit | 6317934c7f314b7debf7df0a59d0e0228211b809 (patch) | |
tree | 660f4470f4391f5ba6ed5dcf4e668916977346e7 /searchlib | |
parent | 108b10c069c5a80ab3027caa5aa62aedf184ef43 (diff) |
Use a simple std::vector<bool> for visited markin as most bits will be set.
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/vespa/searchlib/tensor/hnsw_index.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/searchlib/src/vespa/searchlib/tensor/hnsw_index.cpp b/searchlib/src/vespa/searchlib/tensor/hnsw_index.cpp index 545ee7cfa96..a1515534cbc 100644 --- a/searchlib/src/vespa/searchlib/tensor/hnsw_index.cpp +++ b/searchlib/src/vespa/searchlib/tensor/hnsw_index.cpp @@ -658,17 +658,17 @@ HnswIndex::count_reachable_nodes() const if (search_level < 0) { return 0; } - auto visited = _visited_set_pool.get(_graph.size()); + std::vector<bool> visited(_graph.size()); LinkArray found_links; found_links.push_back(entry.docid); - visited.mark(entry.docid); + visited[entry.docid] = true; while (search_level >= 0) { for (uint32_t idx = 0; idx < found_links.size(); ++idx) { uint32_t docid = found_links[idx]; auto neighbors = _graph.get_link_array(docid, search_level); for (uint32_t neighbor : neighbors) { - if (visited.is_marked(neighbor)) continue; - visited.mark(neighbor); + if (visited[neighbor]) continue; + visited[neighbor] = true; found_links.push_back(neighbor); } } |