mirror of
https://github.com/libp2p/go-libp2p-peerstore.git
synced 2025-03-13 11:30:09 +08:00
Update benchmarks to run against both peerstores
This commit is contained in:
parent
4972b40efd
commit
6a9cba0e1b
@ -53,7 +53,7 @@ func testHas(t *testing.T, exp, act []ma.Multiaddr) {
|
||||
}
|
||||
}
|
||||
|
||||
func setupBadgerDatastore(t *testing.T) (datastore.Batching, func()) {
|
||||
func setupBadgerDatastore(t testing.TB) (datastore.Batching, func()) {
|
||||
dataPath, err := ioutil.TempDir(os.TempDir(), "badger")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
|
@ -38,7 +38,7 @@ func runTestWithPeerstores(t *testing.T, testFunc func(*testing.T, Peerstore)) {
|
||||
testFunc(t, ps2)
|
||||
}
|
||||
|
||||
func setupDatastorePeerstore(t *testing.T) (Peerstore, func()) {
|
||||
func setupDatastorePeerstore(t testing.TB) (Peerstore, func()) {
|
||||
ds, closeDB := setupBadgerDatastore(t)
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
ps, err := NewPeerstoreDatastore(ctx, ds)
|
||||
@ -326,21 +326,30 @@ func BenchmarkBasicPeerstore(b *testing.B) {
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkBasicPeerstoreRateLimited(b *testing.B) {
|
||||
ps := NewPeerstore()
|
||||
func benchmarkPeerstoreRateLimited(ps Peerstore) func(*testing.B) {
|
||||
return func(b *testing.B) {
|
||||
producer := make(chan *peerpair, 100)
|
||||
addrs := make(chan *peerpair, 100)
|
||||
|
||||
producer := make(chan *peerpair, 100)
|
||||
addrs := make(chan *peerpair, 100)
|
||||
go rateLimitedAddressProducer(b, addrs, producer, 10000, time.Millisecond, 500*time.Microsecond)
|
||||
|
||||
go rateLimitedAddressProducer(b, addrs, producer, 5000, time.Millisecond, 500*time.Microsecond)
|
||||
|
||||
b.ResetTimer()
|
||||
for {
|
||||
pp, ok := <-addrs
|
||||
if !ok {
|
||||
break
|
||||
b.ResetTimer()
|
||||
for {
|
||||
pp, ok := <-addrs
|
||||
if !ok {
|
||||
break
|
||||
}
|
||||
pid := peer.ID(pp.ID)
|
||||
ps.AddAddr(pid, pp.Addr, PermanentAddrTTL)
|
||||
}
|
||||
pid := peer.ID(pp.ID)
|
||||
ps.AddAddr(pid, pp.Addr, PermanentAddrTTL)
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkBasicPeerstoreRateLimited(b *testing.B) {
|
||||
ps := NewPeerstore()
|
||||
b.Run("PeerstoreBasic", benchmarkPeerstoreRateLimited(ps))
|
||||
|
||||
dsps, closer := setupDatastorePeerstore(b)
|
||||
defer closer()
|
||||
b.Run("PeerstoreDatastore", benchmarkPeerstoreRateLimited(dsps))
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user