mirror of
https://github.com/tendermint/tendermint.git
synced 2026-01-08 22:23:11 +00:00
Cherry-picking PR #6509 By pre-creating the hasher, instead of creating new one everytime addrbook.hash is called. ``` name old time/op new time/op delta AddrBook_hash-8 181ns ±13% 80ns ± 1% -56.08% (p=0.000 n=10+10) name old alloc/op new alloc/op delta AddrBook_hash-8 216B ± 0% 8B ± 0% -96.30% (p=0.000 n=10+10) name old allocs/op new allocs/op delta AddrBook_hash-8 2.00 ± 0% 1.00 ± 0% -50.00% (p=0.000 n=10+10) ``` Fixed #6508 --- #### PR checklist - [x] Tests written/updated, or no tests needed - [x] `CHANGELOG_PENDING.md` updated, or no changelog entry needed - [x] Updated relevant documentation (`docs/`) and code comments, or no documentation updates needed
25 lines
509 B
Go
25 lines
509 B
Go
package pex
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/tendermint/tendermint/p2p"
|
|
)
|
|
|
|
func BenchmarkAddrBook_hash(b *testing.B) {
|
|
book := &addrBook{
|
|
ourAddrs: make(map[string]struct{}),
|
|
privateIDs: make(map[p2p.ID]struct{}),
|
|
addrLookup: make(map[p2p.ID]*knownAddress),
|
|
badPeers: make(map[p2p.ID]*knownAddress),
|
|
filePath: "",
|
|
routabilityStrict: true,
|
|
}
|
|
book.init()
|
|
msg := []byte(`foobar`)
|
|
b.ResetTimer()
|
|
for i := 0; i < b.N; i++ {
|
|
_, _ = book.hash(msg)
|
|
}
|
|
}
|