use less than 4GB on 32 bits. fixes #1008
This commit is contained in:
parent
a6bfec22b5
commit
8b8e08f0f5
@ -66,7 +66,7 @@ void ExtractionContainers::PrepareData(const std::string &output_file_name,
|
|||||||
std::chrono::time_point<std::chrono::steady_clock> time1 = std::chrono::steady_clock::now();
|
std::chrono::time_point<std::chrono::steady_clock> time1 = std::chrono::steady_clock::now();
|
||||||
|
|
||||||
std::cout << "[extractor] Sorting used nodes ... " << std::flush;
|
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<std::chrono::steady_clock> time2 = std::chrono::steady_clock::now();
|
std::chrono::time_point<std::chrono::steady_clock> time2 = std::chrono::steady_clock::now();
|
||||||
std::chrono::duration<double> elapsed_seconds = time2 - time1;
|
std::chrono::duration<double> elapsed_seconds = time2 - time1;
|
||||||
std::cout << "ok, after " << elapsed_seconds.count() << "s" << std::endl;
|
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();
|
time1 = std::chrono::steady_clock::now();
|
||||||
|
|
||||||
std::cout << "[extractor] Sorting all nodes ... " << std::flush;
|
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();
|
time2 = std::chrono::steady_clock::now();
|
||||||
elapsed_seconds = time2 - time1;
|
elapsed_seconds = time2 - time1;
|
||||||
std::cout << "ok, after " << elapsed_seconds.count() << "s" << std::endl;
|
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;
|
std::cout << "[extractor] Sorting used ways ... " << std::flush;
|
||||||
stxxl::sort(
|
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();
|
time2 = std::chrono::steady_clock::now();
|
||||||
elapsed_seconds = time2 - time1;
|
elapsed_seconds = time2 - time1;
|
||||||
std::cout << "ok, after " << elapsed_seconds.count() << "s" << std::endl;
|
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(),
|
stxxl::sort(restrictions_list.begin(),
|
||||||
restrictions_list.end(),
|
restrictions_list.end(),
|
||||||
CmpRestrictionContainerByFrom(),
|
CmpRestrictionContainerByFrom(),
|
||||||
4294967296);
|
stxxl_memory);
|
||||||
time2 = std::chrono::steady_clock::now();
|
time2 = std::chrono::steady_clock::now();
|
||||||
elapsed_seconds = time2 - time1;
|
elapsed_seconds = time2 - time1;
|
||||||
std::cout << "ok, after " << elapsed_seconds.count() << "s" << std::endl;
|
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(),
|
stxxl::sort(restrictions_list.begin(),
|
||||||
restrictions_list.end(),
|
restrictions_list.end(),
|
||||||
CmpRestrictionContainerByTo(),
|
CmpRestrictionContainerByTo(),
|
||||||
4294967296);
|
stxxl_memory);
|
||||||
time2 = std::chrono::steady_clock::now();
|
time2 = std::chrono::steady_clock::now();
|
||||||
elapsed_seconds = time2 - time1;
|
elapsed_seconds = time2 - time1;
|
||||||
std::cout << "ok, after " << elapsed_seconds.count() << "s" << std::endl;
|
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.
|
// Sort edges by start.
|
||||||
std::cout << "[extractor] Sorting edges by start ... " << std::flush;
|
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();
|
time2 = std::chrono::steady_clock::now();
|
||||||
elapsed_seconds = time2 - time1;
|
elapsed_seconds = time2 - time1;
|
||||||
std::cout << "ok, after " << elapsed_seconds.count() << "s" << std::endl;
|
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();
|
time1 = std::chrono::steady_clock::now();
|
||||||
// Sort Edges by target
|
// Sort Edges by target
|
||||||
std::cout << "[extractor] Sorting edges by target ... " << std::flush;
|
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();
|
time2 = std::chrono::steady_clock::now();
|
||||||
elapsed_seconds = time2 - time1;
|
elapsed_seconds = time2 - time1;
|
||||||
std::cout << "ok, after " << elapsed_seconds.count() << "s" << std::endl;
|
std::cout << "ok, after " << elapsed_seconds.count() << "s" << std::endl;
|
||||||
|
@ -37,6 +37,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||||||
|
|
||||||
class ExtractionContainers
|
class ExtractionContainers
|
||||||
{
|
{
|
||||||
|
constexpr static unsigned stxxl_memory = ((sizeof(std::size_t) == 4) ? std::numeric_limits<int>::max() : std::numeric_limits<unsigned>::max());
|
||||||
public:
|
public:
|
||||||
typedef stxxl::vector<NodeID> STXXLNodeIDVector;
|
typedef stxxl::vector<NodeID> STXXLNodeIDVector;
|
||||||
typedef stxxl::vector<ExternalMemoryNode> STXXLNodeVector;
|
typedef stxxl::vector<ExternalMemoryNode> STXXLNodeVector;
|
||||||
|
Loading…
Reference in New Issue
Block a user