progs/perf: add human-readable float formatter
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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, ...);
|
||||
|
||||
Reference in New Issue
Block a user