mirror of
https://github.com/libp2p/go-libp2p-peerstore.git
synced 2025-03-23 13:00:08 +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")
|
dataPath, err := ioutil.TempDir(os.TempDir(), "badger")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -38,7 +38,7 @@ func runTestWithPeerstores(t *testing.T, testFunc func(*testing.T, Peerstore)) {
|
|||||||
testFunc(t, ps2)
|
testFunc(t, ps2)
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupDatastorePeerstore(t *testing.T) (Peerstore, func()) {
|
func setupDatastorePeerstore(t testing.TB) (Peerstore, func()) {
|
||||||
ds, closeDB := setupBadgerDatastore(t)
|
ds, closeDB := setupBadgerDatastore(t)
|
||||||
ctx, cancel := context.WithCancel(context.Background())
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
ps, err := NewPeerstoreDatastore(ctx, ds)
|
ps, err := NewPeerstoreDatastore(ctx, ds)
|
||||||
@ -326,21 +326,30 @@ func BenchmarkBasicPeerstore(b *testing.B) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkBasicPeerstoreRateLimited(b *testing.B) {
|
func benchmarkPeerstoreRateLimited(ps Peerstore) func(*testing.B) {
|
||||||
ps := NewPeerstore()
|
return func(b *testing.B) {
|
||||||
|
producer := make(chan *peerpair, 100)
|
||||||
|
addrs := make(chan *peerpair, 100)
|
||||||
|
|
||||||
producer := make(chan *peerpair, 100)
|
go rateLimitedAddressProducer(b, addrs, producer, 10000, time.Millisecond, 500*time.Microsecond)
|
||||||
addrs := make(chan *peerpair, 100)
|
|
||||||
|
|
||||||
go rateLimitedAddressProducer(b, addrs, producer, 5000, time.Millisecond, 500*time.Microsecond)
|
b.ResetTimer()
|
||||||
|
for {
|
||||||
b.ResetTimer()
|
pp, ok := <-addrs
|
||||||
for {
|
if !ok {
|
||||||
pp, ok := <-addrs
|
break
|
||||||
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