Message ID | 20231011083845.798413-3-tvrtko.ursulin@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | None | expand |
Hi Tvrtko, On 2023-10-11 at 09:38:44 +0100, Tvrtko Ursulin wrote: > From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > > Padding the percentage bars and table columns with spaces happens quite a > lot so lets do better than putchar at a time. Have a table of visually > empty strings and build the required length out of those chunks. > > While at it, also move the percentage bar table into its function scope. > > v2: > * Fix checkpatch and use ARRAY_SIZE. (Kamil) > > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com> > --- > tools/intel_gpu_top.c | 38 +++++++++++++++++++++++++++++++++----- > 1 file changed, 33 insertions(+), 5 deletions(-) > > diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c > index b6d1014f00b8..006879c4ae67 100644 > --- a/tools/intel_gpu_top.c > +++ b/tools/intel_gpu_top.c > @@ -926,14 +926,39 @@ static void free_display_clients(struct igt_drm_clients *clients) > free(clients); > } > > -static const char *bars[] = { " ", "▏", "▎", "▍", "▌", "▋", "▊", "▉", "█" }; > - > static int n_spaces(const int n) > { > - int i; > + static const char *spaces[] = { > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + " ", > + }; > + int i, r = n; > > - for (i = 0; i < n; i++) > - putchar(' '); > + while (r) { > + if (r > ARRAY_SIZE(spaces)) > + i = ARRAY_SIZE(spaces) - 1; > + else > + i = r - 1; > + fputs(spaces[i], stdout); > + r -= i + 1; > + } > > return n; > } > @@ -941,6 +966,9 @@ static int n_spaces(const int n) > static void > print_percentage_bar(double percent, double max, int max_len, bool numeric) > { > + static const char *bars[] = { > + " ", "▏", "▎", "▍", "▌", "▋", "▊", "▉", "█" > + }; > int bar_len, i, len = max_len - 2; > const int w = 8; > > -- > 2.39.2 >
On 11/10/2023 13:40, Kamil Konieczny wrote: > Hi Tvrtko, > On 2023-10-11 at 09:38:44 +0100, Tvrtko Ursulin wrote: >> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> >> >> Padding the percentage bars and table columns with spaces happens quite a >> lot so lets do better than putchar at a time. Have a table of visually >> empty strings and build the required length out of those chunks. >> >> While at it, also move the percentage bar table into its function scope. >> >> v2: >> * Fix checkpatch and use ARRAY_SIZE. (Kamil) >> >> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> >> Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> > > Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com> Thanks Kamil, now pushed! Regards, Tvrtko
diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c index b6d1014f00b8..006879c4ae67 100644 --- a/tools/intel_gpu_top.c +++ b/tools/intel_gpu_top.c @@ -926,14 +926,39 @@ static void free_display_clients(struct igt_drm_clients *clients) free(clients); } -static const char *bars[] = { " ", "▏", "▎", "▍", "▌", "▋", "▊", "▉", "█" }; - static int n_spaces(const int n) { - int i; + static const char *spaces[] = { + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + }; + int i, r = n; - for (i = 0; i < n; i++) - putchar(' '); + while (r) { + if (r > ARRAY_SIZE(spaces)) + i = ARRAY_SIZE(spaces) - 1; + else + i = r - 1; + fputs(spaces[i], stdout); + r -= i + 1; + } return n; } @@ -941,6 +966,9 @@ static int n_spaces(const int n) static void print_percentage_bar(double percent, double max, int max_len, bool numeric) { + static const char *bars[] = { + " ", "▏", "▎", "▍", "▌", "▋", "▊", "▉", "█" + }; int bar_len, i, len = max_len - 2; const int w = 8;