4
時間值我已經在去寫一個基準我的國際象棋引擎:圍棋:使用的基準
func BenchmarkStartpos(b *testing.B) {
board := ParseFen(startpos)
for i := 0; i < b.N; i++ {
Perft(&board, 5)
}
}
我看到這個輸出,當它運行:
goos: darwin
goarch: amd64
BenchmarkStartpos-4 10 108737398 ns/op
PASS
ok _/Users/dylhunn/Documents/go-chess 1.215s
我想用的時候每次執行(在這種情況下,108737398 ns/op
)來計算另一個值,並將其作爲基準的結果打印出來。具體來說,我想輸出節點每秒,這是Perft
呼叫的結果除以每次呼叫的時間。
如何訪問基準執行的時間,以便我可以打印自己的派生結果?
由於該溶液含有'主()'函數,它必須被放置在一個「主」包,對嗎?我的項目是一個圖書館,因此沒有主要的軟件包,並且向回購商添加一個會導致人們通過'go get'獲取它的困難。有什麼解決方法嗎? – dylhunn
@dylhunn我包含一個指向[Go Playground](https://play.golang.org/p/0Rf_y1vNUp)的鏈接,您可以在其中嘗試它。有一個'main()'函數就是你可以試用它的方式。你可以使用'main()'函數中的代碼_everywhere_,顯然也包括非'main'函數,也包括測試包。 – icza
@ixza啊,我明白了。謝謝您的幫助! – dylhunn