Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/3party
diff options
context:
space:
mode:
authorLev Dragunov <l.dragunov@corp.mail.ru>2016-03-25 16:22:07 +0300
committerLev Dragunov <l.dragunov@corp.mail.ru>2016-03-25 16:22:07 +0300
commit2111d130c4ff598dedf8062c42db6da4d0841e97 (patch)
treea845b663f4a582ac732bb46396203bf84739417a /3party
parent13b59d57bf67b82c27945f02a56ccc1407668201 (diff)
Osrm routed memory consumption fix.
Diffstat (limited to '3party')
-rwxr-xr-x3party/osrm/osrm-backend/library/osrm_impl.cpp10
-rwxr-xr-x3party/osrm/osrm-backend/library/osrm_impl.hpp3
-rw-r--r--3party/osrm/osrm-backend/plugins/MapsMePlugin.hpp12
-rw-r--r--3party/osrm/osrm-backend/plugins/WayIdPlugin.hpp11
4 files changed, 18 insertions, 18 deletions
diff --git a/3party/osrm/osrm-backend/library/osrm_impl.cpp b/3party/osrm/osrm-backend/library/osrm_impl.cpp
index b3fe280f0d..aa270efcde 100755
--- a/3party/osrm/osrm-backend/library/osrm_impl.cpp
+++ b/3party/osrm/osrm-backend/library/osrm_impl.cpp
@@ -79,6 +79,12 @@ OSRM_impl::OSRM_impl(libosrm_config &lib_config)
query_data_facade = new InternalDataFacade<QueryEdge::EdgeData>(lib_config.server_paths);
}
+ if (!osrm::LoadNodeDataFromFile(lib_config.server_paths["enodesdata"].string(), m_nodeData))
+ {
+ SimpleLogger().Write(logDEBUG) << "Can't load node data";
+ return;
+ }
+
// The following plugins handle all requests.
RegisterPlugin(new DistanceTablePlugin<BaseDataFacade<QueryEdge::EdgeData>>(
query_data_facade, lib_config.max_locations_distance_table));
@@ -90,8 +96,8 @@ OSRM_impl::OSRM_impl(libosrm_config &lib_config)
RegisterPlugin(new TimestampPlugin<BaseDataFacade<QueryEdge::EdgeData>>(query_data_facade));
RegisterPlugin(new ViaRoutePlugin<BaseDataFacade<QueryEdge::EdgeData>>(query_data_facade));
RegisterPlugin(new MapsMePlugin<BaseDataFacade<QueryEdge::EdgeData>>(
- query_data_facade, lib_config.server_paths["borders"].string(), lib_config.server_paths["enodesdata"].string()));
- RegisterPlugin(new WayIdPlugin<BaseDataFacade<QueryEdge::EdgeData>>(query_data_facade, lib_config.server_paths["enodesdata"].string()));
+ query_data_facade, lib_config.server_paths["borders"].string(), m_nodeData));
+ RegisterPlugin(new WayIdPlugin<BaseDataFacade<QueryEdge::EdgeData>>(query_data_facade, m_nodeData));
}
OSRM_impl::~OSRM_impl()
diff --git a/3party/osrm/osrm-backend/library/osrm_impl.hpp b/3party/osrm/osrm-backend/library/osrm_impl.hpp
index a736c042f6..4ec09796dd 100755
--- a/3party/osrm/osrm-backend/library/osrm_impl.hpp
+++ b/3party/osrm/osrm-backend/library/osrm_impl.hpp
@@ -31,6 +31,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
class BasePlugin;
struct RouteParameters;
+#include "../data_structures/edge_based_node_data.hpp"
#include "../data_structures/query_edge.hpp"
#include <osrm/json_container.hpp>
@@ -66,6 +67,8 @@ class OSRM_impl
void decrease_concurrent_query_count();
// increase number of concurrent queries
void increase_concurrent_query_count();
+
+ osrm::NodeDataVectorT m_nodeData;
};
#endif // OSRM_IMPL_HPP
diff --git a/3party/osrm/osrm-backend/plugins/MapsMePlugin.hpp b/3party/osrm/osrm-backend/plugins/MapsMePlugin.hpp
index 4cb6e5d05b..3921b8ca69 100644
--- a/3party/osrm/osrm-backend/plugins/MapsMePlugin.hpp
+++ b/3party/osrm/osrm-backend/plugins/MapsMePlugin.hpp
@@ -115,18 +115,14 @@ template <class DataFacadeT> class MapsMePlugin final : public BasePlugin
};
public:
- explicit MapsMePlugin(DataFacadeT *facade, std::string const &baseDir, std::string const & nodeDataFile)
+ explicit MapsMePlugin(DataFacadeT *facade, std::string const &baseDir, osrm::NodeDataVectorT const & nodeData)
: m_descriptorString("mapsme"), m_facade(facade),
- m_reader(baseDir + '/' + PACKED_POLYGONS_FILE)
+ m_reader(baseDir + '/' + PACKED_POLYGONS_FILE),
+ m_nodeData(nodeData)
{
#ifndef MT_STRUCTURES
SimpleLogger().Write(logWARNING) << "Multitreaded storage was not set on compile time!!! Do not use osrm-routed in several threads."
#endif
- if (!osrm::LoadNodeDataFromFile(nodeDataFile, m_nodeData))
- {
- SimpleLogger().Write(logDEBUG) << "Can't load node data";
- return;
- }
ReaderSource<ModelReaderPtr> src(m_reader.GetReader(PACKED_POLYGONS_INFO_TAG));
rw::Read(src, m_countries);
m_regions.resize(m_countries.size());
@@ -291,5 +287,5 @@ public:
std::string m_descriptorString;
DataFacadeT * m_facade;
FilesContainerR m_reader;
- osrm::NodeDataVectorT m_nodeData;
+ osrm::NodeDataVectorT const & m_nodeData;
};
diff --git a/3party/osrm/osrm-backend/plugins/WayIdPlugin.hpp b/3party/osrm/osrm-backend/plugins/WayIdPlugin.hpp
index 308530909a..3a1ea08157 100644
--- a/3party/osrm/osrm-backend/plugins/WayIdPlugin.hpp
+++ b/3party/osrm/osrm-backend/plugins/WayIdPlugin.hpp
@@ -25,18 +25,13 @@ template <class DataFacadeT>
class WayIdPlugin final : public BasePlugin
{
public:
- WayIdPlugin(DataFacadeT * facade, std::string const & nodeDataFile)
- : m_descriptorString("wayid"), m_facade(facade)
+ WayIdPlugin(DataFacadeT * facade, osrm::NodeDataVectorT const & nodeData)
+ : m_descriptorString("wayid"), m_facade(facade), m_nodeData(nodeData)
{
#ifndef MT_STRUCTURES
SimpleLogger().Write(logWARNING) << "Multitreaded storage was not set on compile time!!! Do "
"not use osrm-routed in several threads."
#endif
- if (!osrm::LoadNodeDataFromFile(nodeDataFile, m_nodeData))
- {
- SimpleLogger().Write(logDEBUG) << "Can't load node data";
- return;
- }
m_searchEngine = osrm::make_unique<SearchEngine<DataFacadeT>>(facade);
}
@@ -161,5 +156,5 @@ private:
std::unique_ptr<SearchEngine<DataFacadeT>> m_searchEngine;
std::string m_descriptorString;
DataFacadeT * m_facade;
- osrm::NodeDataVectorT m_nodeData;
+ osrm::NodeDataVectorT const & m_nodeData;
};