當我用go test -v -bench=. -benchmem
運行我的基準測試時,我看到以下結果。在基準測試中,alloc/op和B/op意味着什麼?
f1 10000 120860 ns/op 2433 B/op 28 allocs/op
f2 10000 120288 ns/op 2288 B/op 26 allocs/op
根據我的理解:
10000
是迭代for i := 0; i < b.N; i++ {
的數量。XXX ns/op
是近似的時間花了一個迭代完成
但即使reading the docs後,我無法找出什麼B/op
和allocs/op
意思。
我的猜測是,分配/ OP有事情做垃圾回收和內存分配(越少越好)。
任何人都可以給出這些值的含義很好的解釋。也很高興知道爲什麼上升和主要步驟來減少它們(我意識到這是測試特定的,但可能有一些通用提示,在許多情況下工作)
allocs/op表示每個操作發生多少內存分配(單次迭代)。 B/op是每個操作分配了多少字節。 –
@Not_a_Golfer發佈那個答案? – icza