Vector allocation is done in chunks of 10% increase

This commit is contained in:
DennisOSRM 2012-04-25 16:35:13 +02:00
parent 231c593bb3
commit 41eb07e35b

View File

@ -253,6 +253,10 @@ void EdgeBasedGraphFactory::Run() {
//distance += heightPenalty; //distance += heightPenalty;
//distance += ComputeTurnPenalty(u, v, w); //distance += ComputeTurnPenalty(u, v, w);
assert(edgeData1.edgeBasedNodeID != edgeData2.edgeBasedNodeID); assert(edgeData1.edgeBasedNodeID != edgeData2.edgeBasedNodeID);
if(edgeBasedEdges.size() == edgeBasedEdges.capacity()-3)
edgeBasedEdges.reserve(edgeBasedEdges.size()*1.1);
if(originalEdgeData.size() == originalEdgeData.capacity()-3)
originalEdgeData.reserve(originalEdgeData.size()*1.1);
OriginalEdgeData oed(v,edgeData2.nameID, turnInstruction); OriginalEdgeData oed(v,edgeData2.nameID, turnInstruction);
EdgeBasedEdge newEdge(edgeData1.edgeBasedNodeID, edgeData2.edgeBasedNodeID, edgeBasedEdges.size(), distance, true, false ); EdgeBasedEdge newEdge(edgeData1.edgeBasedNodeID, edgeData2.edgeBasedNodeID, edgeBasedEdges.size(), distance, true, false );
originalEdgeData.push_back(oed); originalEdgeData.push_back(oed);