forked from zhuxiujia/GoMybatis
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TimeCountUtil.go
41 lines (36 loc) · 1.09 KB
/
TimeCountUtil.go
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
33
34
35
36
37
38
39
40
41
package utils
import (
"fmt"
"reflect"
"time"
)
var c_FLOAT64_DEFAULT float64
var Float64Type = reflect.TypeOf(c_FLOAT64_DEFAULT)
//调用次方法 必须加上 defer 关键字!
func CountMethodUseTime(now time.Time, info string, duration time.Duration) {
var end = time.Now()
var durationName = DurationToString(duration)
fmt.Println(info+` use time =`, end.Sub(now).Nanoseconds()/int64(duration), durationName)
}
func DurationToString(duration time.Duration) string {
var durationName = ""
if duration == time.Nanosecond {
durationName = "ns"
} else if duration == time.Microsecond {
durationName = "mcs"
} else if duration == time.Millisecond {
durationName = "ms"
} else if duration == time.Second {
durationName = "s"
} else if duration == time.Minute {
durationName = "minute"
} else if duration == time.Hour {
durationName = "hour"
}
return durationName
}
//调用次方法 必须加上 defer 关键字!
func CountMethodTps(total int, now time.Time, info string) {
var end = time.Now()
fmt.Println(info+` tps =`, int64(total*1000000000)/end.Sub(now).Nanoseconds())
}