Experiments with deque to see if it's more allocation friendly
This commit is contained in:
parent
41eb07e35b
commit
876a551cd8
@ -128,7 +128,7 @@ EdgeBasedGraphFactory::EdgeBasedGraphFactory(int nodes, std::vector<NodeBasedEdg
|
||||
INFO("Converted " << inputEdges.size() << " node-based edges into " << _nodeBasedGraph->GetNumberOfEdges() << " edge-based nodes.");
|
||||
}
|
||||
|
||||
void EdgeBasedGraphFactory::GetEdgeBasedEdges( std::vector< EdgeBasedEdge >& outputEdgeList ) {
|
||||
void EdgeBasedGraphFactory::GetEdgeBasedEdges( std::deque< EdgeBasedEdge >& outputEdgeList ) {
|
||||
|
||||
GUARANTEE(0 == outputEdgeList.size(), "Vector passed to EdgeBasedGraphFactory::GetEdgeBasedEdges(..) is not empty");
|
||||
GUARANTEE(0 != edgeBasedEdges.size(), "No edges in edge based graph");
|
||||
@ -195,7 +195,6 @@ void EdgeBasedGraphFactory::InsertEdgeBasedNode(
|
||||
}
|
||||
|
||||
void EdgeBasedGraphFactory::Run() {
|
||||
INFO("Generating edge based representation of input data");
|
||||
// edgeBasedNodes.reserve(_nodeBasedGraph->GetNumberOfEdges());
|
||||
Percent p(_nodeBasedGraph->GetNumberOfNodes());
|
||||
int numberOfSkippedTurns(0);
|
||||
@ -253,8 +252,8 @@ 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(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);
|
||||
|
@ -29,6 +29,7 @@
|
||||
#include <boost/property_tree/ptree.hpp>
|
||||
#include <boost/property_tree/ini_parser.hpp>
|
||||
|
||||
#include <deque>
|
||||
#include <vector>
|
||||
|
||||
#include <cstdlib>
|
||||
@ -103,7 +104,7 @@ private:
|
||||
RestrictionMap _restrictionMap;
|
||||
|
||||
|
||||
std::vector<EdgeBasedEdge> edgeBasedEdges;
|
||||
std::deque<EdgeBasedEdge> edgeBasedEdges;
|
||||
std::vector<EdgeBasedNode> edgeBasedNodes;
|
||||
std::vector<OriginalEdgeData> originalEdgeData;
|
||||
std::vector<NodeInfo> inputNodeInfoList;
|
||||
@ -127,7 +128,7 @@ public:
|
||||
explicit EdgeBasedGraphFactory(int nodes, std::vector<InputEdgeT> & inputEdges, std::vector<NodeID> & _bollardNodes, std::vector<NodeID> & trafficLights, std::vector<_Restriction> & inputRestrictions, std::vector<NodeInfo> & nI, boost::property_tree::ptree speedProfile, std::string & srtm);
|
||||
|
||||
void Run();
|
||||
void GetEdgeBasedEdges( std::vector< EdgeBasedEdge >& edges );
|
||||
void GetEdgeBasedEdges( std::deque< EdgeBasedEdge >& edges );
|
||||
void GetEdgeBasedNodes( std::vector< EdgeBasedNode> & nodes);
|
||||
void GetOriginalEdgeData( std::vector< OriginalEdgeData> & originalEdgeData);
|
||||
short AnalyzeTurn(const NodeID u, const NodeID v, const NodeID w) const;
|
||||
|
Loading…
Reference in New Issue
Block a user