Contractor: log stats for loaded speed files
This commit is contained in:
parent
0df0b4305d
commit
a21fd2ea18
@ -32,6 +32,7 @@
|
|||||||
#include <tbb/spin_mutex.h>
|
#include <tbb/spin_mutex.h>
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
#include <atomic>
|
||||||
#include <bitset>
|
#include <bitset>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
@ -244,6 +245,9 @@ parse_segment_lookup_from_csv_files(const std::vector<std::string> &segment_spee
|
|||||||
local.push_back(std::move(val));
|
local.push_back(std::move(val));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
util::SimpleLogger().Write() << "Loaded speed file " << filename << " with " << local.size()
|
||||||
|
<< " speeds";
|
||||||
|
|
||||||
{
|
{
|
||||||
Mutex::scoped_lock _{flatten_mutex};
|
Mutex::scoped_lock _{flatten_mutex};
|
||||||
|
|
||||||
@ -273,6 +277,10 @@ parse_segment_lookup_from_csv_files(const std::vector<std::string> &segment_spee
|
|||||||
|
|
||||||
flatten.erase(it, end(flatten));
|
flatten.erase(it, end(flatten));
|
||||||
|
|
||||||
|
util::SimpleLogger().Write() << "In total loaded " << segment_speed_filenames.size()
|
||||||
|
<< " speed file(s) with a total of " << flatten.size()
|
||||||
|
<< " unique values";
|
||||||
|
|
||||||
return flatten;
|
return flatten;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -485,6 +493,14 @@ std::size_t Contractor::LoadEdgeExpandedGraph(
|
|||||||
const auto first = static_cast<const LeafNode *>(region.get_address());
|
const auto first = static_cast<const LeafNode *>(region.get_address());
|
||||||
const auto last = first + (bytes / sizeof(LeafNode));
|
const auto last = first + (bytes / sizeof(LeafNode));
|
||||||
|
|
||||||
|
// vector to count used speeds for logging
|
||||||
|
// size offset by one since index 0 is used for speeds not from external file
|
||||||
|
std::vector<std::atomic<std::uint64_t>> segment_speeds_counters(
|
||||||
|
segment_speed_filenames.size() + 1);
|
||||||
|
for (auto &each : segment_speeds_counters)
|
||||||
|
each.store(0);
|
||||||
|
const constexpr auto LUA_SOURCE = 0;
|
||||||
|
|
||||||
tbb::parallel_for_each(first, last, [&](const LeafNode ¤t_node) {
|
tbb::parallel_for_each(first, last, [&](const LeafNode ¤t_node) {
|
||||||
for (size_t i = 0; i < current_node.object_count; i++)
|
for (size_t i = 0; i < current_node.object_count; i++)
|
||||||
{
|
{
|
||||||
@ -529,6 +545,14 @@ std::size_t Contractor::LoadEdgeExpandedGraph(
|
|||||||
new_segment_weight;
|
new_segment_weight;
|
||||||
m_geometry_datasource[forward_begin + leaf_object.fwd_segment_position] =
|
m_geometry_datasource[forward_begin + leaf_object.fwd_segment_position] =
|
||||||
forward_speed_iter->speed_source.source;
|
forward_speed_iter->speed_source.source;
|
||||||
|
|
||||||
|
// count statistics for logging
|
||||||
|
segment_speeds_counters[forward_speed_iter->speed_source.source] += 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// count statistics for logging
|
||||||
|
segment_speeds_counters[LUA_SOURCE] += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (leaf_object.reverse_packed_geometry_id != SPECIAL_EDGEID)
|
if (leaf_object.reverse_packed_geometry_id != SPECIAL_EDGEID)
|
||||||
@ -571,10 +595,34 @@ std::size_t Contractor::LoadEdgeExpandedGraph(
|
|||||||
new_segment_weight;
|
new_segment_weight;
|
||||||
m_geometry_datasource[reverse_begin + rev_segment_position] =
|
m_geometry_datasource[reverse_begin + rev_segment_position] =
|
||||||
reverse_speed_iter->speed_source.source;
|
reverse_speed_iter->speed_source.source;
|
||||||
|
|
||||||
|
// count statistics for logging
|
||||||
|
segment_speeds_counters[reverse_speed_iter->speed_source.source] += 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// count statistics for logging
|
||||||
|
segment_speeds_counters[LUA_SOURCE] += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}); // parallel_for_each
|
}); // parallel_for_each
|
||||||
|
|
||||||
|
for (std::size_t i = 0; i < segment_speeds_counters.size(); i++)
|
||||||
|
{
|
||||||
|
if (i == LUA_SOURCE)
|
||||||
|
{
|
||||||
|
util::SimpleLogger().Write() << "Used " << segment_speeds_counters[LUA_SOURCE]
|
||||||
|
<< " speeds from LUA profile or input map";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// segments_speeds_counters has 0 as LUA, segment_speed_filenames not, thus we need
|
||||||
|
// to susbstract 1 to avoid off-by-one error
|
||||||
|
util::SimpleLogger().Write() << "Used " << segment_speeds_counters[i]
|
||||||
|
<< " speeds from " << segment_speed_filenames[i - 1];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto maybe_save_geometries = [&] {
|
const auto maybe_save_geometries = [&] {
|
||||||
|
Loading…
Reference in New Issue
Block a user