From bf55c2d0a95722ca617c8633b72d8fa817ab2fef Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Sun, 15 Feb 2026 03:10:54 +0100 Subject: [PATCH] Performance: Update progress bar only when changed --- writeimg.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/writeimg.c b/writeimg.c index f606624..1e473bf 100644 --- a/writeimg.c +++ b/writeimg.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -41,8 +42,12 @@ #define BAR_WIDTH 50 void print_progress(int current, int total) { - float fraction = (float)current / total; - int filled = (int)(fraction * BAR_WIDTH); + static int last = INT_MAX; + float fraction = (float)current / total; + int filled = (int)(fraction * BAR_WIDTH); + + if (filled == last) + return; /* Avoid unnecessary io/flushes */ printf("\r["); for (int i = 0; i < BAR_WIDTH; i++) {