Add avg throughput to writer stats

This commit is contained in:
2021-01-21 10:29:19 +01:00
parent 407b00890d
commit 2ed8b0fd1b
2 changed files with 18 additions and 8 deletions
+4 -2
View File
@@ -8,7 +8,8 @@
class WriterStats {
const std::string detector_name_;
size_t stats_modulo_;
const size_t stats_modulo_;
const size_t image_n_bytes_;
int image_counter_;
uint32_t total_buffer_write_us_;
@@ -21,7 +22,8 @@ class WriterStats {
public:
WriterStats(
const std::string &detector_name,
const size_t stats_modulo);
const size_t stats_modulo,
const size_t image_n_bytes);
void start_image_write();
void end_image_write();
};
+14 -6
View File
@@ -6,9 +6,11 @@ using namespace chrono;
WriterStats::WriterStats(
const string& detector_name,
const size_t stats_modulo) :
const size_t stats_modulo,
const size_t image_n_bytes) :
detector_name_(detector_name),
stats_modulo_(stats_modulo)
stats_modulo_(stats_modulo),
image_n_bytes_(image_n_bytes)
{
reset_counters();
}
@@ -43,19 +45,25 @@ void WriterStats::end_image_write()
void WriterStats::print_stats()
{
float avg_buffer_write_us = total_buffer_write_us_ / image_counter_;
const float avg_buffer_write_us = total_buffer_write_us_ / image_counter_;
uint64_t timestamp = time_point_cast<nanoseconds>(
const uint64_t timestamp = time_point_cast<nanoseconds>(
system_clock::now()).time_since_epoch().count();
const uint64_t avg_throughput =
// bytes -> megabytes
(image_n_bytes_ / 1024 / 1024) /
// micro seconds -> seconds
(avg_buffer_write_us * 1000 * 1000);
// Output in InfluxDB line protocol
cout << "jf_buffer_writer";
cout << ",detector_name=" << detector_name_;
cout << " ";
cout << "n_written_images=" << image_counter_ << "i";
cout << " ,avg_buffer_write_us=" << avg_buffer_write_us;
cout << ",max_buffer_write_us=" << max_buffer_write_us_ << "i";
cout << " ";
cout << " ,max_buffer_write_us=" << max_buffer_write_us_ << "i";
cout << " ,avg_throughput=" << avg_throughput;
cout << timestamp;
cout << endl;
}