go benchmark 性能测试 单元测试 基准测试 使用方法详解
生活随笔
收集整理的這篇文章主要介紹了
go benchmark 性能测试 单元测试 基准测试 使用方法详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡言
基準測試是測量一個程序在固定工作負載下的性能
在Golang中,基準測試函數以Benchmark為前綴并且帶有一個 *testing.B 類型的參數
規則
示例:(測試int轉string的SprIntf()函數的效率)
package test import ("fmt""testing" ) func BenchmarkTest1(b *testing.B) {for i := 0; i < b.N; i++ {_ = fmt.Sprintf("%d", i)} }實驗結果如下圖(請注意紅框中的,比如文件名,函數名,測試命令):
測試結果分析:
1. BenchmarkTest1-4 表測試的函數名,-4 表示GOMAXPROCS(線程數)的值為4
2. 10000000 表一共執行了一千萬次,即B.N的值
3. 107 ns/op表平均每次操作花費了107納秒
4. 16 B/op 表每次操作申請了16Byte的內存申請
5. 2 allocs/op 表每次操作申請了2次內存
參數介紹
1. ?參數-bench,它指明要測試的函數;點字符意思是測試當前所有以Benchmark為前綴函數
2. ?參數-benchmem,性能測試的時候顯示測試函數的內存分配大小,內存分配次數的統計信息
3. 參數-count n,運行測試和性能多少此,默認一次
PS:
有些時候在benchmark之前需要做一些準備工作,并且,我們不希望這些準備工作納入到計時里面,我們可以使用 b.ResetTimer(),代表重置計時為0,以調用時的時刻作為重新計時的開始
總結
以上是生活随笔為你收集整理的go benchmark 性能测试 单元测试 基准测试 使用方法详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: go语言 数组 map整体json
- 下一篇: golang 数组 切片 下标范围