aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/timer/Timer.cpp
blob: 6f04c981502f911dd936450aa947820071b26e22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/*
 * Copyright 2011 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */
#include "Timer.h"
#include <stdio.h>

SkString HumanizeMs(double ms) {
    if (ms > 60e+3)  return SkStringPrintf("%.3gm", ms/60e+3);
    if (ms >  1e+3)  return SkStringPrintf("%.3gs",  ms/1e+3);
    if (ms <  1e-3)  return SkStringPrintf("%.3gns", ms*1e+6);
#ifdef SK_BUILD_FOR_WIN
    if (ms < 1)      return SkStringPrintf("%.3gus", ms*1e+3);
#else
    if (ms < 1)      return SkStringPrintf("%.3gµs", ms*1e+3);
#endif
    return SkStringPrintf("%.3gms", ms);
}

int HumanizeMs(char* s, int len, double ms) {
    if (ms > 60e+3)  return snprintf(s, len, "%.3gm", ms / 60e+3);
    if (ms >  1e+3)  return snprintf(s, len, "%.3gs", ms / 1e+3);
    if (ms <  1e-3)  return snprintf(s, len, "%.3gns", ms*1e+6);
#ifdef SK_BUILD_FOR_WIN
    if (ms < 1)      return snprintf(s, len, "%.3gus", ms*1e+3);
#else
    if (ms < 1)      return snprintf(s, len, "%.3gµs", ms*1e+3);
#endif
    return snprintf(s, len, "%.3gms", ms);
}