介绍

  1. 函数的运行时间的长短是衡量这个函数性能的重要指标,特别是在对比和基准测试里。
  2. 要得到函数的运行时间,最简单的办法就是在函数执行之前设置一个起始时间,并在函数运行结束时获取从起始时间到现在的时间间隔,这个时间间隔就是函数的运行时间。

使用

  1. 在Go语言中我们可以使用 time 包中的 Since() 函数来获取函数的运行时间。
  2. Since() 函数返回从 t 到现在经过的时间,等价于time.Now().Sub(t)
    1. func Since(t Time) Duration
    1. func test() {
    2. start := time.Now() // 获取当前时间
    3. sum := 0
    4. for i := 0; i < 100000000; i++ {
    5. sum++
    6. }
    7. elapsed1 := time.Since(start) // Since
    8. elapsed2 := time.Now().Sub(start) // Sub
    9. fmt.Println("该函数执行完成耗时:", elapsed1, elapsed2)
    10. }
    11. func main() {
    12. test()
    13. }

    由于计算机 CPU 及一些其他因素的影响,在获取函数运行时间时每次的结果都有些许不同,属于正常现象。


封装

我们可以简单封装一个结构体来实现计算函数执行时间:

  1. type Since struct {
  2. Time time.Time
  3. }
  4. func (s *Since) Start() {
  5. s.Time = time.Now()
  6. }
  7. func (s *Since) Stop(isLog bool) {
  8. if sin := time.Since(s.Time); isLog {
  9. fmt.Printf("codeing runtime: %d ms", sin)
  10. }
  11. }