graph is built in-place, so memory peak usage is halved.

This commit is contained in:
DennisOSRM
2011-12-15 17:48:00 +01:00
parent a098e38c5a
commit ad77d6cfec
4 changed files with 112 additions and 28 deletions
+8 -4
View File
@@ -41,10 +41,14 @@ struct ObjectsForQueryStruct {
std::cout << "[objects] loading query data structures ..." << std::flush;
ifstream hsgrInStream(hsgrPath.c_str(), ios::binary);
//Deserialize road network graph
std::vector< InputEdge> edgeList;
const int n = readHSGRFromStream(hsgrInStream, edgeList);
graph = new QueryGraph(n, edgeList);
std::vector< InputEdge >().swap( edgeList ); //free memory
std::vector< QueryGraph::_StrNode> nodeList;
std::vector< QueryGraph::_StrEdge> edgeList;
const int n = readHSGRFromStream(hsgrInStream, nodeList, edgeList);
graph = new QueryGraph(nodeList, edgeList);
INFO("Graph has " << graph->GetNumberOfNodes() << " nodes");
INFO("Graph has " << graph->GetNumberOfEdges() << " edges");
//Init nearest neighbor data structure
ifstream nodesInStream(nodesPath.c_str(), ios::binary);