1.背景

分析程序执行效率,需求计算程序段运行时间。

2.方案

实际上就是时间差,并显示出来。其中time.Since()函数返回字符串类型,例如1h2m3s等,可能还有us等。

2.1计算代码块的运行时间

start := time.Now()
//some func or operation
cost := time.Since(start)
fmt.Printf("cost=[%s]",cost)

2.2计算函数的运行时间

利用defer的作用,可以在函数开始的时候获取一个时间,使用time.Now()在函数结束的时候,获取程序从标记开始的时间段,可以得到函数运行的时间。

func compute() {
start := time.Now()
defer func() {
cost := time.Since(start)
fmt.Println("cost=", cost)
}()
// some computation
}//compute