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

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

Go-lang測試,Benchmark上的Parallel Setting是什么意思?

Go-lang測試,Benchmark上的Parallel Setting是什么意思?

慕斯709654 2022-03-02 19:26:09
在https://golang.org/pkg/testing/中描述了我們可以使用testing.B.RunParallel()函數在并行設置中運行基準測試。我嘗試編寫簡單的測試代碼:func BenchmarkFunctionSome(b *testing.B) {    for i := 0; i < b.N; i++ {        SomeFunction()    }}然后我把它改成使用RunParallel()func BenchmarkFunctionSome(b *testing.B) {    b.RunParallel(func(pb *testing.PB) {        for pb.Next() {            SomeFunction()        }    })}并且使用RunParallel()的比第一個基準要慢。實際上,基準測試中并行設置的含義是什么?如果我使用它為什么會變慢RunParallel()?
查看完整描述

2 回答

?
九州編程

TA貢獻1785條經驗 獲得超4個贊

第一個基準測試中的 for 循環讓所有測試按順序運行,一次一個,性能是時間除以迭代次數。

RunParallel 基準在可用線程之間劃分迭代。性能的計算類似,可能是每個組的平均值。這一點是幾個(確切的 # 基于您的 GOMAXPROCS 設置)測試迭代同時運行。這在測試具有共享資源和鎖定的功能時特別有用,這些功能可能單獨運行良好,但在并發運行時會引入性能問題。


查看完整回答
反對 回復 2022-03-02
?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

這取決于里面有什么

SomeFunction()

如果它只是一個空函數或簡單的計算,串行基準測試會更快。但如果是繁重的計算或 IO,

RunParallel()

基準會更快。


查看完整回答
反對 回復 2022-03-02
  • 2 回答
  • 0 關注
  • 366 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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