MCPcopy Create free account
hub / github.com/Project-OSRM/osrm-backend / InitializeUnpackingCache

Method InitializeUnpackingCache

src/engine/search_engine_data.cpp:188–210  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

186 }
187}
188void SearchEngineData<MLD>::InitializeUnpackingCache(unsigned number_of_nodes,
189 unsigned number_of_edges)
190{
191 if (unpacking_cache && unpacking_cache_node_count == number_of_nodes &&
192 unpacking_cache_edge_count == number_of_edges)
193 return;
194
195 constexpr double kCacheBudgetFraction = 0.10;
196 constexpr double kL1Fraction = 0.20;
197 constexpr double kL2Fraction = 0.80;
198 constexpr size_t kBytesPerNode = 16;
199 constexpr size_t kBytesPerEdge = 10;
200
201 const size_t graph_memory = static_cast<size_t>(number_of_nodes) * kBytesPerNode +
202 static_cast<size_t>(number_of_edges) * kBytesPerEdge;
203 const size_t total_budget = static_cast<size_t>(graph_memory * kCacheBudgetFraction);
204 const size_t l1_budget = static_cast<size_t>(total_budget * kL1Fraction);
205 const size_t l2_budget = static_cast<size_t>(total_budget * kL2Fraction);
206
207 unpacking_cache.reset(new MLDUnpackingCache(l1_budget, l2_budget, MLDUnpackingCacheCostFn{}));
208 unpacking_cache_node_count = number_of_nodes;
209 unpacking_cache_edge_count = number_of_edges;
210}
211} // namespace osrm::engine

Callers 3

directShortestPathSearchFunction · 0.80
alternativePathSearchFunction · 0.80
Algorithm>Method · 0.80

Calls 1

resetMethod · 0.45

Tested by 2

directShortestPathSearchFunction · 0.64
Algorithm>Method · 0.64