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

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

基準測試函數名稱后面的“-6”是什么意思?

基準測試函數名稱后面的“-6”是什么意思?

Go
jeck貓 2022-09-12 21:04:30
我有一個go測試文件,我在其中編寫了一個基準測試函數,如下所示:func BenchmarkStuff(b *testing.B) {    for i := 0; i < b.N; i++ {        stuff()    }}當我用 運行這個時,我得到這個:go test -benchtime 1xBenchmarkStuff-6               1     847751900 ns/op這是什么意思?這似乎不必要地隱晦。-6
查看完整描述

1 回答

?
陪伴而非守候

TA貢獻1757條經驗 獲得超8個贊

它表示用于運行基準測試的CPU數量 - 因此,在您的情況下。6


編輯:


Go 網站上似乎沒有正式記錄 Benchmark 名稱格式,但您可以在標準庫源代碼中看到名稱的制定方式:這里和這里:


runtime.GOMAXPROCS(procs)

benchName := benchmarkName(b.name, procs)


func benchmarkName(name string, n int) string {

    if n != 1 {

        return fmt.Sprintf("%s-%d", name, n)

    }

    return name

}

僅供參考:從命令行文檔:go help


go help testflag

    -cpu 1,2,4

        Specify a list of GOMAXPROCS values for which the tests or

        benchmarks should be executed. The default is the current value

        of GOMAXPROCS.

因此,如果您想強制基準測試使用較少數量的CPU,請使用env var:GOMAXPROCS


$ GOMAXPROCS=2  go test -bench=.


...


BenchmarkStuff-2    1000000000           0.2642 ns/op

或者,您可以對多個 CPU 內核設置進行基準測試,如下所示:


$ go test -bench=. -cpu=1,2,4


...


BenchmarkStuff      1000000000           0.2516 ns/op

BenchmarkStuff-2    1000000000           0.2531 ns/op

BenchmarkStuff-4    1000000000           0.2488 ns/op


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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