From eb1d629ea7879c6458d603652aa47531f8530a25 Mon Sep 17 00:00:00 2001 From: DennisOSRM Date: Wed, 30 Nov 2011 20:00:05 +0100 Subject: [PATCH] Doing swap trick to save RAM --- createHierarchy.cpp | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/createHierarchy.cpp b/createHierarchy.cpp index 108a11d9e..762a544c3 100644 --- a/createHierarchy.cpp +++ b/createHierarchy.cpp @@ -64,7 +64,7 @@ int main (int argc, char *argv[]) { ERR("usage: " << std::endl << argv[0] << " "); } INFO("Using restrictions from file: " << argv[2]); - ifstream restrictionsInstream(argv[2], ios::binary); + std::ifstream restrictionsInstream(argv[2], ios::binary); _Restriction restriction; unsigned usableRestrictionsCounter(0); restrictionsInstream.read((char*)&usableRestrictionsCounter, sizeof(unsigned)); @@ -96,23 +96,11 @@ int main (int argc, char *argv[]) { ERR("Cannot open " << argv[1]); } - char nodeOut[1024]; - char edgeOut[1024]; - char ramIndexOut[1024]; - char fileIndexOut[1024]; - char levelInfoOut[1024]; - - strcpy(nodeOut, argv[1]); - strcpy(edgeOut, argv[1]); - strcpy(ramIndexOut, argv[1]); - strcpy(fileIndexOut, argv[1]); - strcpy(levelInfoOut, argv[1]); - - strcat(nodeOut, ".nodes"); - strcat(edgeOut, ".hsgr"); - strcat(ramIndexOut, ".ramIndex"); - strcat(fileIndexOut, ".fileIndex"); - strcat(levelInfoOut, ".levels"); + char nodeOut[1024]; strcpy(nodeOut, argv[1]); strcat(nodeOut, ".nodes"); + char edgeOut[1024]; strcpy(edgeOut, argv[1]); strcat(edgeOut, ".hsgr"); + char ramIndexOut[1024]; strcpy(ramIndexOut, argv[1]); strcat(ramIndexOut, ".ramIndex"); + char fileIndexOut[1024]; strcpy(fileIndexOut, argv[1]); strcat(fileIndexOut, ".fileIndex"); + char levelInfoOut[1024]; strcpy(levelInfoOut, argv[1]); strcat(levelInfoOut, ".levels"); std::vector edgeList; NodeID n = readBinaryOSRMGraphFromStream(in, edgeList, &internalToExternaleNodeMapping, inputRestrictions); @@ -135,6 +123,8 @@ int main (int argc, char *argv[]) { INFO("building grid ..."); writeableGrid->ConstructGrid(nodeBasedEdgeList, &internalToExternaleNodeMapping, ramIndexOut, fileIndexOut); DELETE( writeableGrid ); + nodeBasedEdgeList.clear(); + std::vector().swap(nodeBasedEdgeList); INFO("writing node map ..."); std::ofstream mapOutFile(nodeOut, ios::binary); @@ -142,7 +132,6 @@ int main (int argc, char *argv[]) { mapOutFile.write((char *)&(info), sizeof(NodeInfo)); } mapOutFile.close(); - internalToExternaleNodeMapping.clear(); std::vector().swap(internalToExternaleNodeMapping); inputRestrictions.clear();