Go 中的效能基準測試衡量函數效率,透過在以 Benchmark 開頭的函數中編寫基準測試程式碼實作。 testing.B 類型提供 ResetTimer()、StopTimer() 和 N 屬性控制基準測試行為。例如,計算斐波那契數的函數基準測試顯示執行 Fib(30) 需要約 2,767,425 奈秒。優化基準測試程式碼以避免開銷,多次運行以獲得準確結果。
Go 函數測試中的效能基準測試
效能基準測試是衡量函數效率的重要工具。在 Go 中,testing
套件提供了針對函數執行時間的基準測試功能。
寫效能基準測試
寫一個效能基準測試需要建立一個以Benchmark
開頭的函數,後面跟上要測試的函數名:
func BenchmarkFib(b *testing.B) { // 基准测试代码 }
使用testing.B
testing.B
類型提供以下方法來控制基準測試:
ResetTimer()
: 重設計時器。 StopTimer()
: 停止計時器並記錄時間。 N
: 執行基準測試的次數。 實戰案例
讓我們對一個計算斐波那契數的函數進行基準測試:
func Fib(n int) int { if n <= 1 { return n } return Fib(n-1) + Fib(n-2) } func BenchmarkFib(b *testing.B) { for i := 0; i < b.N; i++ { Fib(30) } }
在終端機中運行測試:
go test -bench=.
輸出將如下所示:
BenchmarkFib 2767425 ns/op
這表示用30 作為參數執行Fib
函數的基準測試需要大約2,767,425 奈秒(2767 毫秒)。
提示
-benchmem
標誌來測量基準測試的記憶體分配。 以上是Golang 函數測試中的效能基準測試的詳細內容。更多資訊請關注PHP中文網其他相關文章!