mirror of
https://github.com/paulscherrerinstitute/sf_daq_buffer.git
synced 2026-05-04 13:54:13 +02:00
Make statistics more homogeneous and use the new STATS_MODULO config parameter
This commit is contained in:
+11
-11
@@ -34,8 +34,8 @@ int main (int argc, char *argv[]) {
|
||||
UdpRecvModule udp_module(ring_buffer);
|
||||
udp_module.start_recv(udp_port, JUNGFRAU_DATA_BYTES_PER_FRAME);
|
||||
|
||||
uint64_t n_stat_out(0);
|
||||
uint64_t n_frames_with_missing_packets = 0;
|
||||
uint64_t stats_counter(0);
|
||||
uint64_t n_missed_packets = 0;
|
||||
uint64_t n_missed_frames = 0;
|
||||
uint64_t last_pulse_id = 0;
|
||||
|
||||
@@ -81,10 +81,10 @@ int main (int argc, char *argv[]) {
|
||||
ring_buffer.release(data.first->buffer_slot_index);
|
||||
|
||||
// TODO: Make real statistics, please.
|
||||
n_stat_out++;
|
||||
stats_counter++;
|
||||
|
||||
if (data.first->n_recv_packets < JUNGFRAU_N_PACKETS_PER_FRAME) {
|
||||
n_frames_with_missing_packets +=
|
||||
n_missed_packets +=
|
||||
JUNGFRAU_N_PACKETS_PER_FRAME - data.first->n_recv_packets;
|
||||
}
|
||||
|
||||
@@ -93,16 +93,16 @@ int main (int argc, char *argv[]) {
|
||||
}
|
||||
last_pulse_id = pulse_id;
|
||||
|
||||
if (n_stat_out == 500) {
|
||||
cout << "device_name " << device_name;
|
||||
cout << " pulse_id " << pulse_id;
|
||||
cout << " n_missed_frames " << n_missed_frames;
|
||||
cout << " f_with_miss_p " << n_frames_with_missing_packets;
|
||||
if (stats_counter == STATS_MODULO) {
|
||||
cout << "sf_buffer:device_name " << device_name;
|
||||
cout << " sf_buffer:pulse_id " << pulse_id;
|
||||
cout << " sf_buffer:n_missed_frames " << n_missed_frames;
|
||||
cout << " sf_buffer:n_missed_packets " << n_missed_packets;
|
||||
cout << endl;
|
||||
|
||||
|
||||
n_stat_out = 0;
|
||||
n_frames_with_missing_packets = 0;
|
||||
stats_counter = 0;
|
||||
n_missed_packets = 0;
|
||||
n_missed_frames = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -129,7 +129,7 @@ void sf_replay (
|
||||
auto ms_duration = chrono::duration_cast<chrono::milliseconds>(
|
||||
end_time-start_time).count();
|
||||
|
||||
cout << "read_ms " << ms_duration << endl;
|
||||
cout << "sf_replay:batch_read_ms " << ms_duration << endl;
|
||||
|
||||
for (size_t i_frame=0; i_frame < REPLAY_BLOCK_SIZE; i_frame++) {
|
||||
|
||||
|
||||
@@ -154,8 +154,7 @@ int main (int argc, char *argv[])
|
||||
SFWriter writer(output_file, n_frames, n_modules);
|
||||
|
||||
// TODO: Remove stats trash.
|
||||
int i_write = 0;
|
||||
int I_WRITE_MODULO = 1;
|
||||
int stats_counter = 0;
|
||||
|
||||
size_t read_total_ms = 0;
|
||||
size_t write_total_ms = 0;
|
||||
@@ -199,7 +198,7 @@ int main (int argc, char *argv[])
|
||||
ring_buffer.release(metadata->buffer_slot_index);
|
||||
current_pulse_id++;
|
||||
|
||||
i_write++;
|
||||
stats_counter++;
|
||||
|
||||
auto write_end_time = chrono::steady_clock::now();
|
||||
|
||||
@@ -222,15 +221,15 @@ int main (int argc, char *argv[])
|
||||
write_max_ms = write_ms_duration;
|
||||
}
|
||||
|
||||
if (i_write==I_WRITE_MODULO) {
|
||||
cout << "read_ms " << read_total_ms / I_WRITE_MODULO;
|
||||
cout << " read_max_ms " << read_max_ms;
|
||||
cout << " write_ms " << write_total_ms / I_WRITE_MODULO;
|
||||
cout << " write_max_ms " << write_max_ms;
|
||||
if (stats_counter == STATS_MODULO) {
|
||||
cout << "sf_writer:read_ms " << read_total_ms / STATS_MODULO;
|
||||
cout << " sf_writer:read_max_ms " << read_max_ms;
|
||||
cout << " sf_writer:write_ms " << write_total_ms / STATS_MODULO;
|
||||
cout << " sf_writer:write_max_ms " << write_max_ms;
|
||||
|
||||
cout << endl;
|
||||
|
||||
i_write = 0;
|
||||
stats_counter = 0;
|
||||
read_total_ms = 0;
|
||||
read_max_ms = 0;
|
||||
write_total_ms = 0;
|
||||
|
||||
Reference in New Issue
Block a user