Go语言实战流媒体视频网站(2.3)

224 阅读1分钟

benchmark的写法

  1. benchmark函数一般以Benchmark开头
  2. benchmark的case一般会跑b.N次,而且每次执行都会如此
  3. 在执行过程中go会根据实际case的执行时间是否稳定来决定b.N的次数,最后达到稳态

下面举栗子:(在main_test.go中加入以下代码)

package main

import (
  "testing"
)

func BenchmarkAll(b *testing.B){
  for n := 0; n < b.N; n++{
    Print1to20()
  }
}

命令行输入:

go test -bench=.

注意:

千万不要测试非稳态的代码,如:

func aaa(n int)int{
  for n > 0{
    n--
  }
  return n
}

func BenchmarkAll(b *testing.B){
  for n := 0; n < b.N; n++{
    aaa(n)
  }
}
// 运行不会停