jfjoch_process: Print frame rate
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user