diff options
author | Keith Whitwell <keithw@vmware.com> | 2009-09-21 15:51:26 +0100 |
---|---|---|
committer | Keith Whitwell <keithw@vmware.com> | 2009-09-21 15:57:13 +0100 |
commit | ed63bd62d85c92555c1d310ae46064ad3c7d47ee (patch) | |
tree | d83613d5f9c350a4f19a94222c3d6c85247154a4 /progs/perf | |
parent | d17af7d1e19e637e29db47bd8f6e3e579760c530 (diff) |
progs/perf: add human-readable float formatter
Diffstat (limited to 'progs/perf')
-rw-r--r-- | progs/perf/common.c | 18 | ||||
-rw-r--r-- | progs/perf/common.h | 2 |
2 files changed, 20 insertions, 0 deletions
diff --git a/progs/perf/common.c b/progs/perf/common.c index 695b8a99d9..722f4b7b45 100644 --- a/progs/perf/common.c +++ b/progs/perf/common.c @@ -113,3 +113,21 @@ PerfMeasureRate(PerfRateFunc f) } +/* Note static buffer, can only use once per printf. + */ +const char * +PerfHumanFloat( double d ) +{ + static char buf[80]; + + if (d > 1000000000.0) + snprintf(buf, sizeof(buf), "%.1f billion", d / 1000000000.0); + else if (d > 1000000.0) + snprintf(buf, sizeof(buf), "%.1f million", d / 1000000.0); + else if (d > 1000.0) + snprintf(buf, sizeof(buf), "%.1f thousand", d / 1000.0); + else + snprintf(buf, sizeof(buf), "%.1f", d); + + return buf; +} diff --git a/progs/perf/common.h b/progs/perf/common.h index 85db678c64..fc49bbed32 100644 --- a/progs/perf/common.h +++ b/progs/perf/common.h @@ -30,6 +30,8 @@ typedef void (*PerfRateFunc)(unsigned count); extern double PerfMeasureRate(PerfRateFunc f); +const char * +PerfHumanFloat( double d ); extern void perf_printf(const char *format, ...); |