From: SeongSoo Cho <nexusz99@gmail.com>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: linux-kernel@vger.kernel.org, Ingo Molnar <mingo@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
SeongSoo Cho <nexusz99@gmail.com>,
Namhyung Kim <namhyung@kernel.org>, Jiri Olsa <jolsa@kernel.org>,
Taeung Song <taeung@kosslab.kr>
Subject: [PATCH] perf diff: Introduce the new rules of colored printing of delta.
Date: Fri, 30 Sep 2016 04:58:26 +0900 [thread overview]
Message-ID: <1475179106-24790-1-git-send-email-devpadak@gmail.com> (raw)
From: SeongSoo Cho <nexusz99@gmail.com>
As you know, there are the common colored printing of percents so overhead(%) can be c$
But Delta means difference percents from percents of overhead between two files e.g. p$
Although the rule is for overhead(%), Delta value also follow the same rule.
So, I think that it would be better to use the new colored rule for the Delta as below.
Increament: background colored in red (e.g. +0.50%)
Decrement: colored in blue (e.g. -5.50%)
Same: default color (e.g. +0.00%)
Instead of percent_color_snprintf() function, use new delta_color_snprintf() function.
Signed-off-by: SeongSoo Cho <nexusz99@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Taeung Song <taeung@kosslab.kr>
---
tools/perf/builtin-diff.c | 2 +-
tools/perf/util/color.c | 21 +++++++++++++++++++++
tools/perf/util/color.h | 1 +
3 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c
index 9ff0db4..228bad1 100644
--- a/tools/perf/builtin-diff.c
+++ b/tools/perf/builtin-diff.c
@@ -868,7 +868,7 @@ static int __hpp__color_compare(struct perf_hpp_fmt *fmt,
diff = compute_delta(he, pair);
scnprintf(pfmt, 20, "%%%+d.2f%%%%", dfmt->header_width - 1);
- return percent_color_snprintf(hpp->buf, hpp->size,
+ return delta_color_snprintf(hpp->buf, hpp->size,
pfmt, diff);
case COMPUTE_RATIO:
if (he->dummy)
diff --git a/tools/perf/util/color.c b/tools/perf/util/color.c
index dbbf89b..643e932 100644
--- a/tools/perf/util/color.c
+++ b/tools/perf/util/color.c
@@ -219,3 +219,24 @@ int percent_color_len_snprintf(char *bf, size_t size, const char *fmt, ...)
color = get_percent_color(percent);
return color_snprintf(bf, size, color, fmt, len, percent);
}
+
+int delta_color_snprintf(char *bf, size_t size, const char *fmt, ...)
+{
+ va_list args;
+ double diff, percent;
+ const char *color = PERF_COLOR_NORMAL;
+
+ va_start(args, fmt);
+ diff = va_arg(args, double);
+ va_end(args);
+
+ /* diff command printed second digit after the decimal point. */
+ percent = roundf(diff * 100) / 100;
+ if (percent < 0)
+ color = PERF_COLOR_BLUE;
+ else {
+ if (percent > 0)
+ color = PERF_COLOR_BG_RED;
+ }
+ return color_snprintf(bf, size, color, fmt, diff);
+}
diff --git a/tools/perf/util/color.h b/tools/perf/util/color.h
index a93997f..608edc9 100644
--- a/tools/perf/util/color.h
+++ b/tools/perf/util/color.h
@@ -40,6 +40,7 @@ int value_color_snprintf(char *bf, size_t size, const char *fmt, double value);
int percent_color_snprintf(char *bf, size_t size, const char *fmt, ...);
int percent_color_len_snprintf(char *bf, size_t size, const char *fmt, ...);
int percent_color_fprintf(FILE *fp, const char *fmt, double percent);
+int delta_color_snprintf(char *bf, size_t size, const char *fmt, ...);
const char *get_percent_color(double percent);
#endif /* __PERF_COLOR_H */
--
2.7.4
reply other threads:[~2016-09-29 19:58 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1475179106-24790-1-git-send-email-devpadak@gmail.com \
--to=nexusz99@gmail.com \
--cc=acme@kernel.org \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=taeung@kosslab.kr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox