亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Go 基準測試中放置設置/拆卸的位置?

在 Go 基準測試中放置設置/拆卸的位置?

Go
蕭十郎 2022-09-12 21:04:52
我有一個go測試文件,我在其中編寫了一個基準測試函數,如下所示:func BenchmarkStuff(b *testing.B) {    for i := 0; i < b.N; i++ {        stuff()    }}但是,該函數需要在每次運行之前進行一些設置,并在每次運行后進行清理。我有功能,分別這樣做。但我不想對設置和清理功能進行基準測試。stuff()setup()cleanup()那么他們應該在哪里被調用呢?如果我在基準測試中調用它們,它們將被添加到結果測量中。但如果沒有他們,就會失敗。stuff()
查看完整描述

1 回答

?
慕容森

TA貢獻1853條經驗 獲得超18個贊

基準測試包提供重置計時器、停止計時器啟動計時器方法,以避免基準測試所需的計時初始化。

如果需要初始化一次,請在開始循環之前使用:ResetTimer


func BenchmarkStuff(b *testing.B) {

    setup()

    b.ResetTimer()

    for i := 0; i < b.N; i++ {

        stuff()

    }

}

如果需要在循環期間重新初始化,可以使用 和 來避免對該部分進行計時:StopTimerStartTimer


func BenchmarkStuff(b *testing.B) {

    for i := 0; i < b.N; i++ {

        b.StopTimer()

        setup()

        b.StartTimer()

        stuff()

    }

}


查看完整回答
反對 回復 2022-09-12
  • 1 回答
  • 0 關注
  • 73 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號