From 8b8e08f0f56d32650b0d4b5cd177c15f07fbd2de Mon Sep 17 00:00:00 2001 From: Dennis Luxen Date: Mon, 12 May 2014 10:57:02 +0200 Subject: [PATCH] use less than 4GB on 32 bits. fixes #1008 --- Extractor/ExtractionContainers.cpp | 14 +++++++------- Extractor/ExtractionContainers.h | 1 + 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Extractor/ExtractionContainers.cpp b/Extractor/ExtractionContainers.cpp index 30d47fb50..1b321a89c 100644 --- a/Extractor/ExtractionContainers.cpp +++ b/Extractor/ExtractionContainers.cpp @@ -66,7 +66,7 @@ void ExtractionContainers::PrepareData(const std::string &output_file_name, std::chrono::time_point time1 = std::chrono::steady_clock::now(); std::cout << "[extractor] Sorting used nodes ... " << std::flush; - stxxl::sort(used_node_id_list.begin(), used_node_id_list.end(), Cmp(), 4294967296); + stxxl::sort(used_node_id_list.begin(), used_node_id_list.end(), Cmp(), stxxl_memory); std::chrono::time_point time2 = std::chrono::steady_clock::now(); std::chrono::duration elapsed_seconds = time2 - time1; std::cout << "ok, after " << elapsed_seconds.count() << "s" << std::endl; @@ -82,7 +82,7 @@ void ExtractionContainers::PrepareData(const std::string &output_file_name, time1 = std::chrono::steady_clock::now(); std::cout << "[extractor] Sorting all nodes ... " << std::flush; - stxxl::sort(all_nodes_list.begin(), all_nodes_list.end(), CmpNodeByID(), 4294967296); + stxxl::sort(all_nodes_list.begin(), all_nodes_list.end(), CmpNodeByID(), stxxl_memory); time2 = std::chrono::steady_clock::now(); elapsed_seconds = time2 - time1; std::cout << "ok, after " << elapsed_seconds.count() << "s" << std::endl; @@ -91,7 +91,7 @@ void ExtractionContainers::PrepareData(const std::string &output_file_name, std::cout << "[extractor] Sorting used ways ... " << std::flush; stxxl::sort( - way_start_end_id_list.begin(), way_start_end_id_list.end(), CmpWayByID(), 4294967296); + way_start_end_id_list.begin(), way_start_end_id_list.end(), CmpWayByID(), stxxl_memory); time2 = std::chrono::steady_clock::now(); elapsed_seconds = time2 - time1; std::cout << "ok, after " << elapsed_seconds.count() << "s" << std::endl; @@ -100,7 +100,7 @@ void ExtractionContainers::PrepareData(const std::string &output_file_name, stxxl::sort(restrictions_list.begin(), restrictions_list.end(), CmpRestrictionContainerByFrom(), - 4294967296); + stxxl_memory); time2 = std::chrono::steady_clock::now(); elapsed_seconds = time2 - time1; std::cout << "ok, after " << elapsed_seconds.count() << "s" << std::endl; @@ -159,7 +159,7 @@ void ExtractionContainers::PrepareData(const std::string &output_file_name, stxxl::sort(restrictions_list.begin(), restrictions_list.end(), CmpRestrictionContainerByTo(), - 4294967296); + stxxl_memory); time2 = std::chrono::steady_clock::now(); elapsed_seconds = time2 - time1; std::cout << "ok, after " << elapsed_seconds.count() << "s" << std::endl; @@ -276,7 +276,7 @@ void ExtractionContainers::PrepareData(const std::string &output_file_name, // Sort edges by start. std::cout << "[extractor] Sorting edges by start ... " << std::flush; - stxxl::sort(all_edges_list.begin(), all_edges_list.end(), CmpEdgeByStartID(), 4294967296); + stxxl::sort(all_edges_list.begin(), all_edges_list.end(), CmpEdgeByStartID(), stxxl_memory); time2 = std::chrono::steady_clock::now(); elapsed_seconds = time2 - time1; std::cout << "ok, after " << elapsed_seconds.count() << "s" << std::endl; @@ -313,7 +313,7 @@ void ExtractionContainers::PrepareData(const std::string &output_file_name, time1 = std::chrono::steady_clock::now(); // Sort Edges by target std::cout << "[extractor] Sorting edges by target ... " << std::flush; - stxxl::sort(all_edges_list.begin(), all_edges_list.end(), CmpEdgeByTargetID(), 4294967296); + stxxl::sort(all_edges_list.begin(), all_edges_list.end(), CmpEdgeByTargetID(), stxxl_memory); time2 = std::chrono::steady_clock::now(); elapsed_seconds = time2 - time1; std::cout << "ok, after " << elapsed_seconds.count() << "s" << std::endl; diff --git a/Extractor/ExtractionContainers.h b/Extractor/ExtractionContainers.h index 0910d2514..7b30e40cb 100644 --- a/Extractor/ExtractionContainers.h +++ b/Extractor/ExtractionContainers.h @@ -37,6 +37,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. class ExtractionContainers { + constexpr static unsigned stxxl_memory = ((sizeof(std::size_t) == 4) ? std::numeric_limits::max() : std::numeric_limits::max()); public: typedef stxxl::vector STXXLNodeIDVector; typedef stxxl::vector STXXLNodeVector;