From 41eb07e35b7716c8cd8d3a9d66249386e3e0f690 Mon Sep 17 00:00:00 2001 From: DennisOSRM Date: Wed, 25 Apr 2012 16:35:13 +0200 Subject: [PATCH] Vector allocation is done in chunks of 10% increase --- Contractor/EdgeBasedGraphFactory.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Contractor/EdgeBasedGraphFactory.cpp b/Contractor/EdgeBasedGraphFactory.cpp index afd674323..77b377e8d 100644 --- a/Contractor/EdgeBasedGraphFactory.cpp +++ b/Contractor/EdgeBasedGraphFactory.cpp @@ -253,6 +253,10 @@ void EdgeBasedGraphFactory::Run() { //distance += heightPenalty; //distance += ComputeTurnPenalty(u, v, w); 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); EdgeBasedEdge newEdge(edgeData1.edgeBasedNodeID, edgeData2.edgeBasedNodeID, edgeBasedEdges.size(), distance, true, false ); originalEdgeData.push_back(oed);