jfjoch_process: Print frame rate

This commit is contained in:
2026-04-21 15:58:31 +02:00
parent 36e726a8d2
commit 3e30872c3c
+14 -3
View File
@@ -389,6 +389,8 @@ int main(int argc, char **argv) {
IndexAndRefine indexer(experiment, &indexer_pool);
std::atomic<int> finished_count = 0;
auto worker = [&](int thread_id) {
JFJochBitShuffleCompressor compressor(experiment.GetCompressionAlgorithm());
std::vector<uint8_t> compressed_buffer;
@@ -481,6 +483,8 @@ int main(int argc, char **argv) {
break;
}
finished_count.fetch_add(1);
// Progress log
if (current_idx_offset > 0 && current_idx_offset % 100 == 0) {
std::optional<float> indexing_rate;
@@ -489,13 +493,20 @@ int main(int argc, char **argv) {
indexing_rate = plots.GetIndexingRate();
}
const auto now = std::chrono::steady_clock::now();
const double elapsed_s = std::chrono::duration<double>(now - start_time).count();
const int processed_images = finished_count.load();
const double frame_rate_hz = (elapsed_s > 0.0) ? (processed_images / elapsed_s) : 0.0;
if (indexing_rate.has_value()) {
logger.Info("Processed {} / {} images (indexing rate {:.1f}%)",
logger.Info("Processed {} / {} images ({:.2f} Hz, indexing rate {:.1f}%)",
current_idx_offset, images_to_process,
frame_rate_hz,
indexing_rate.value() * 100.0f);
} else {
logger.Info("Processed {} / {} images (indexing rate N/A)",
current_idx_offset, images_to_process);
logger.Info("Processed {} / {} images ({:.2f} Hz, indexing rate N/A)",
current_idx_offset, images_to_process,
frame_rate_hz);
}
}
}