基准测试
前进!前进!!不择手段的前进!
基准测试概念
测试代码性能的方法,主要是测试cpu和内存的效率问题。
编写基准测试
|
|
基准测试的规则:
- 基准测试的代码文件必须以_test.go结尾
- 基准测试的函数必须以Benchmark开头,必须是可导出的
- 基准测试函数必须接受一个指向benchmark类型的指针作为唯一参数
- 基准测试函数不能有返回值
- b.N是基准测试框架提供的,表示循环的次数,因为需要反复地暗涌测试的代码,才可以评估性能
- for循环很重要,被测试的代码要放到循环里。
下面运行基准测试:
|
|
-
基准测试要使用
go test命令, -
-bench=标记,接受一个表达式作为参数,匹配基准测试的函数.表示运行所有的基准测试。 -
Benchmark-8 8111588 151 ns/op-8便是运行时的gomaxprocs的值- ``8111588`紧接着的数值是循环的次数
- 在后面是每次消耗的毫秒数。
- 测试默认的时间是1秒,如果想让测试运行的时间更长,可以用
-benchtime指定,比如:go test -bench=. -benchtime=3s
-
-gcflags="-N -l"禁止编译器优化和内联